Shell
僅複製帶有文件的目錄
我正在嘗試將文件及其所在的目錄複製到另一個位置。我可以找到這樣的路徑:
find ~/dim_import/* -type f ! -name xdir | cut -d '/' -f 5-10
哪個輸出
general/header.txt scripts/test scripts/tt
如何將這些複製到另一個位置?例如,新位置將是
new/general/header.txt new/scripts/test new/scripts/tt
問題是有更多的目錄是空的,我不想複製那些,只有其中有文件的目錄和文件本身。
注意:不使用 bash,使用
sh
.
這是一種僅使用
POSIX
shell 功能的方法:find ~/dim_import/* -type f ! -name xdir -exec sh -c ' p=${1%/*}; d=${p##*/}; f=${1##*/}; mkdir -p new/"$d"; cp "$1" new/"$d"' -- {} \;
xargs 應該可用。你可以使用:
find ~/dim_import/* -type f ! -name xdir | xargs -I {} cp {} new/{}