-depth
で取り除くことができる無害なエラーです オプション。
find . -depth -type d -name 'thefoldername*' -exec mv {} newfoldername \;
Find の通常の動作は、ディレクトリを処理してからそれらに再帰することです。名前を変更したので、再帰しようとすると文句が見つかります。 -depth
オプションは、find に最初に再帰を指示し、その後にディレクトリを処理します。
-execdir がありません オプション! find の man ページに記載されているとおり:
-execdir command {};
-exec
のように 、ただし、指定されたコマンドは、一致したファイルを含むサブディレクトリから実行されます。通常、このサブディレクトリは、検索を開始したディレクトリではありません。
find . -depth -type d -name 'thefoldername*' -execdir mv {} newfoldername \;
前の回答で、フォルダーの内容が消えました。
これが私の解決策です。うまくいきます:
for i in
find -type d -name 'oldFolderName'
;dodirname=$(dirname "$i")mv $dirname/oldFolderName $dirname/newFolderNamedone