私の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を作業したい他のファイル拡張子に置き換えて繰り返します。