次のように、いくつかの rar ファイルが保存されています。
/torrents/televisionshowS01E0$X/nameoftelevisionshow.rar
ここで、$Xは変数={0,1,2,...,12}です。
1 つのコマンドを使用して、それらを 1 つの出力ディレクトリ ( ) に抽出したいと思います/publicshare/
。
これまでのところ、次のものがあります:
for i in find /torrents/televisionshowS01*/ -name *.rar; do unrar x "$i" /publicshare/;done
しかし、次のような結果が得られます。
Cannot open /torrents/televisionshowS01E01/.rar
No such file or directory
No files to extract
ただし、find /torrents/televisionshowS01*/ -name *.rar は正しいパスを返します。
答え1
ああ、他の人のbashscriptを見て、findコマンドをバッククォートで囲む必要があることに気付きました。
for i in `find /torrents/televisionshowS01*/ -name *.rar`; do unrar x "$i" /publicshare/; done
そして、コマンドは私が望んだとおりに機能しました。しかし、正確な理由はまだわかりません。数学における括弧と同じように機能すると想定しています。明らかに、今回はうまくいきましたが、良い習慣として、unrar x "$i" /publicshare/
?をバッククォートで囲むべきだったでしょうか。
ありがとう