簡體   English   中英

為什么我在當前目錄的每個目錄中創建指向一種類型文件的符號鏈接的命令不起作用?

[英]Why isn't my command to create symlinks to one type of file within every directory in my current directory working?

我有一個目錄,其中包含大約 500 個目錄。 在這 500 個目錄的每一個中,都有我想要的兩個文件,一個以.bam 結尾,一個以.bai 結尾。 我正在嘗試為所有以.bam 或.bai 結尾的文件創建符號鏈接到一個新位置。

我的目錄結構如下:

/Parent_Directory/[500_Subdirectories]/file.bam 

我的目標目錄是:

/New_Directory/bam_folder/

現在,我遇到了當前代碼的問題:

for d in Parent_Directory; do  
    ( cd "$d" && ln -s *.ba* New_Directory/Bam_Folder ); 
done

似乎一直在發生的是,我在 Bam_Folder 目錄中創建了一個符號鏈接,指向一個名為.ba的不存在的文件文件

我到底做錯了什么,我該如何解決這個問題? 謝謝!

使用find


基於@oguz ismail 的評論改進了答案,阻止程序為每個文件運行,而是只對所有文件執行一次;

find /Parent_Directory/ -iname '*.bam' -exec ln -s -t /New_Directory/bam_folder {} +

原答案:

find /Parent_Directory/ -iname '*.bam' -exec ln -s {} /New_Directory/bam_folder/ ';'
  • -iname '*.bam'
    • .bam結尾的文件
  • -exec ln -s {} /New_Directory/bam_folder/
    • {}是找到的項目的路徑(完整)
    • 第二個參數是符號鏈接將 go 到的路徑

從 find 創建符號鏈接


筆記; 我沒有測試過這個命令,因為我們不確定文件結構是什么樣的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM