GNU/Linux >> Linux の 問題 >  >> Linux

ディレクトリを見つけて名前を変更する

-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


Linux
  1. Linuxですべてのファイルとディレクトリ名を小文字に変更

  2. すべての[ファイル名].mp4を検索し、[ファイル名] .audioの名前を変更しますか?

  3. SSHとホームディレクトリのアクセス許可?

  1. 検索でディレクトリを除外しますか?

  2. 除外ディレクトリを検索しますか?

  3. find でディレクトリを除外する方法。指図

  1. ディレクトリとサブディレクトリ内のファイル数を見つける方法

  2. ファイルを検索してコピーする

  3. ディレクトリおよびサブディレクトリ内のすべてのゼロバイト ファイルを検索する