例如:
find /usr -type f -name "*.txt" -exec cp -r {} ~/txts/ \;
當我們有現有目錄 txt 時工作正常。
據我所知 -cp沒有flag來解決這個案件。也許我應該使用 rsync 或其他什麼?
答案1
好問題,你可以嘗試這個:
首先cd
進入/usr
,這是因為當你使用絕對路徑(如/usr
)時find
,我懷疑它會導致{}
包含完整路徑。
find . -type f -a -name "*.txt" -a -exec install -D {} ~/texts/{} \;
當我運行此命令時,我收到以下錯誤訊息:
尋找:'./share/doc/google-chrome-stable':權限被拒絕
該錯誤訊息並不意味著操作總體失敗,它只是意味著find
無法在./share/doc/google-chrome-stable
目錄上運行命令。
但對我來說,所有其他檔案及其路徑都被複製,目錄路徑是根據需要建立的。
經進一步調查,錯誤原因是
% ls -al --directory ./share/doc/google-chrome-stable
drwx------ 2 root root 4096 Aug 21 12:45 ./share/doc/google-chrome-stable