Bash

如何在沒有文件夾本身的情況下從文件夾中復製文件

  • February 22, 2021

我正在嘗試從沒有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

引用自:https://unix.stackexchange.com/questions/180985