ファイル名から「~」を削除

ファイル名から「~」を削除

私のNASにはbashシェルが制限されており、ファイル名にcharを含む多くのファイルがあります~。たとえば、2018/10/example~1.jpg移動して名前をallFiles/2018-10-example_1.jpg

を使用する代わりに、~ファイル名に_パスをに置き換えて追加する必要がありました。-/

私を助けてくれますか?

.jpg//拡張子を持つPS専用.pngファイル.mov

ベストアンサー1

私はQNAPを持っていませんが、そのためのシェルは実際にBusyBoxだと思います。これはBusyBoxとbashで動作します(bashを使用するにはfind + cut + awkもインストールする必要があります)。

年のディレクトリ(「2018」など)と「allFiles」のディレクトリが同じレベルにあり、そのレベルがシェルの現在の作業ディレクトリであるとします。

find . -name '*.jpg' | cut -c3- | awk '{ newname=$0; gsub(/~/, "_", newname); gsub(/\//, "-", newname); gsub(/^/, "allFiles/", newname); print "mv " $0 " " newname; }'

これにより、すべての.jpgファイルを移動する一連のコマンドが生成されます。まず、コマンドを確認して意味があるかどうかを確認してください。次に、上記のコマンドの最後に「|sh」を追加して実行します。

次に、上記の*.jpgを作業したい他のファイル拡張子に置き換えて繰り返します。

おすすめ記事