Bash
如何在沒有文件夾本身的情況下從文件夾中復製文件
我正在嘗試從沒有A本身的**A文件夾中復製文件和子文件夾。**例如,A文件夾包含下一個:
| file1.txt | file2.txt | subfolder1
執行下一個命令給了我錯誤的結果:
sudo cp -r /home/username/A/ /usr/lib/B/
結果是
/usr/lib/B/A/...copied files...
代替..
/usr/lib/B/...copied files...
如何在沒有原始文件夾的情況下達到預期的目標
高級cp
cp -r /home/username/A/. /usr/lib/B/
這特別好,因為無論目標目錄是否已經存在,它都可以工作。
外殼萬用字元
如果目錄中沒有太多對象,則可以使用 shell globbing:
mkdir -p /usr/lib/B/ shopt -s dotglob cp -r /home/username/A/* /usr/lib/B/
rsync
rsync -a /home/username/A/ /usr/lib/B/
源路徑的
/
末尾很重要;無論目標目錄是否已經存在都有效。尋找
mkdir -p /usr/lib/B/ find /home/username/A/ -mindepth 1 -maxdepth 1 -exec cp -r -t /usr/lib/B/ {} +
或者如果您不需要空子目錄:
find /home/username/A/ -mindepth 1 -type f -exec cp --parents -t /usr/lib/B/ {} +
(沒有
mkdir
)