特定の拡張子を持つすべてのファイルを検索しfind
、特定のフォルダーにコピーしていますが、名前が同じであるため、ほとんどのファイルが上書きされます。Linux コマンドを使用して、ファイルのパスを取得し、ファイル名に置き換えるにはどうすればよいですか?
現在、私は次のコマンドを使用しています:
find . -name "*.css" | xargs cp -t /folder/AllCssFiles/
つまり、次のように特定のパスに 2 つのファイルがある場合:
/something/abc/file.css
/anyting/xyz/file.css
コマンドを使用すると、AllCssFiles フォルダーに次のような内容が表示されます。
/something/abc/file.css (name of the file)
/anyting/xyz/file.css
答え1
-execdir
コマンドrename
1を使用できます。
find ./ -type f -name "*.css" -execdir rename -v "s/search/replace/" {} \;
rename
よくわからない場合は、-n
-n, -nono
No action: print names of files to be renamed, but don't rename.
1これは 、Debian ベースのシステムの一部および他のシステムで呼び出される構文です。perl-rename
rename
prename
perl-rename