すでに接頭辞を持つファイルを無視して複数のディレクトリにあるすべてのファイルにアンダースコアを追加するスクリプトを作成する必要があります。たとえば、_file1, _file2, file3, file4
のように見える必要があります_file1, _file2, _file3, _file4
Unixの特定のファイル名にプレフィックスを付ける
私はUnixスクリプトの知識がほとんどないので、簡単な説明をいただければ幸いです!
すでに接頭辞を持つファイルを無視して複数のディレクトリにあるすべてのファイルにアンダースコアを追加するスクリプトを作成する必要があります。たとえば、_file1, _file2, file3, file4
のように見える必要があります_file1, _file2, _file3, _file4
Unixの特定のファイル名にプレフィックスを付ける
私はUnixスクリプトの知識がほとんどないので、簡単な説明をいただければ幸いです!
はあなたがいずれかを使用することができ、あなたの混乱の場合には、データ損失の可能性を回避するためにそれを使用しますライナーはこのように:
find dir_with_files -regextype posix-extended -type f -regex '^.*\/[^_][^\/]*$' -exec rename -v 's/^(.*\/)([^_][^\/]*)$/$1_$2/' '{}' \;
ここで、dir_with_filesはファイルを検索する上位ディレクトリです。 _から始まる名前のファイルを見つけ、それぞれの名前を変更します。
変更を行う前に、params -n -vでrenameを使用して、実際に実行することなく、実行する操作を表示できます。
find dir_with_files -regextype posix-extended -type f -regex '^.*\/[^_][^\/]*$' -exec rename -v -n 's/^(.*\/)([^_][^\/]*)$/$1_$2/' '{}' \;
@michaeljay私の解決策がうまくいく場合は、正しい解決策としてマークしてください。 – Kamil