2016-11-07 41 views
0

這工作:Flattern子迪爾斯和前置文件名與目錄名稱使用bash

ls -SF data/*/*/* | xargs -I % cp % migrations/db.tmp/ 

但我希望與目錄名」 如

data/folder1/subfolder1/file1.js -> data/folder1-subfolder1-file1.js 

下一步我預先設置的文件名嘗試是:(但不能讓它開始工作)

ls -SF migrations/db/*/*/* | xargs -I % cp % migrations/db.tmp/$(basename %)-% 

任何想法

01?

回答

1

不要使用ls,尤其是與-F選項:

​​3210

這裏有一個更棘手的方法

cd data 
printf "%s\n" */*/* | sed 'h; s,/,-,g; x; G; s/\n/ /; s/^/cp /' 

將輸出一串cp命令。管入| sh執行它們。

相關問題