Files
具有中間目錄變數模式的 cp 文件
我有一個目錄 l
── 10020 │ ├── live │ │ ├── 211231.jpg │ │ ├── 211231_BB.txt │ │ ├── 448378.jpg │ │ ├── 448378_BB.txt │ │ ├── 460830.jpg │ │ └── 460830_BB.txt │ └── spoof │ ├── 035383.jpg │ ├── 035383_BB.txt │ ├── 057847.jpg │ ├── 057847_BB.txt │ ├── 080343.jpg │ ├── 080343_BB.txt ├── 10021 │ ├── live │ │ ├── 013031.jpg │ │ ├── 013031_BB.txt │ │ ├── 025895.jpg │ │ ├── 025895_BB.txt │ └── spoof │ ├── 006434.jpg │ ├── 006434_BB.txt │ ├── 021470.jpg │ ├── 021470_BB.txt │ ├── 027017.jpg │ ├── 027017_BB.txt ├── 10022 │ ├── live │ │ ├── 125401.jpg │ │ ├── 125401_BB.txt │ │ ├── 196573.jpg │ │ └── 196573_BB.txt │ └── spoof │ ├── 013054.jpg │ ├── 013054_BB.txt │ ├── 015386.jpg │ ├── 015386_BB.txt │ ├── 016760.jpg │ ├── 016760_BB.txt │ ├── 020204.jpg │ ├── 020204_BB.txt ├── 10023 │ ├── live │ │ ├── 000240.jpg │ │ ├── 000240_BB.txt │ │ ├── 030384.jpg │ │ ├── 030384_BB.txt │ │ ├── 034898.jpg │ │ ├── 034898_BB.txt │ └── spoof │ ├── 022241.jpg │ ├── 022241_BB.txt │ ├── 023855.jpg │ ├── 023855_BB.txt │ ├── 030252.jpg │ ├── 030252_BB.txt │ └── 475104_BB.txt [it goes on, as you guys suggested I put up the real directory rather than a simplified version]
我想 cp 或 mv all
*/live/*.jpg
並*/live/*.png
進入另一個目錄,例如dir
如何實現?我嘗試過的事情:
rsync -av ~/train/*/*.jpg dir find ~train/ -type f -name '*/live/*.jpg' -exec cp '{}' dir ';' rsync -a --include '*.jpg' --exclude 'live/*' ~/train/ dir
如我所見,在這種情況下,沒有任何名稱為 的子目錄
real
,所以如果您共享您的真實目錄名稱,那麼您的關鍵字可能有一點問題。順便說一句,您可以使用帶有@Kusalananda 結構的“查找”或使用 for 循環來 cp 您的文件和目錄
find -path '/media/data/woreom/dataset/CelebA_Spoof/Data/train /*/real/*.jpg' -type f -exec cp '{}' /media/data/woreom/dataset/dataset/real/ ';'
什麼也沒做。這是因為您要求
/media/data/woreom/datase…
在目前工作目錄中查找。您需要指定搜尋位置,作為第一個參數。所以改為(我認為應該這樣做。)
find /media/data/woreom/dataset/CelebA_Spoof/Data/train \ -path '/*/real/*.jpg' -type f \ -exec echo cp '{}' /media/data/woreom/dataset/dataset/real/ ';'
我添加了
echo
測試這個詞,當它正常工作時刪除。