すべてのファイルを移動するコマンドです。名前ゼロで始まるZeroというフォルダを入力してください。
mv [0]* zero
質問: すべてのファイルを移動するコマンドは何ですかコンテンツ0で始まる0というフォルダを入力しますか?
同じことをする短いコマンドがあったらと思います。
ファイルの内容の最初の文字がで与えられることを知っていますhead -c 1 filename
。
ベストアンサー1
これを実行するように指示されていません。しかし、これは単純なスクリプトです。
コンテンツでファイルを識別して移動する方法を学びます。
f=example_file.txt b=$(head -c1 <"$f") [ "$b" = "0" ] && echo mv -- "$f" zero/
ディレクトリ内の100,000個のファイル全体を繰り返す方法を学びます。
find . -maxdepth 1 -type f -print
あるいは、シェルが多数のアイテムにワイルドカードを使用できるようにすることで、よりシンプルで明確なループが機能する可能性があります。
for f in * do echo "./$f" done
mv
可能なすべてのファイルに対してコードを実行する方法を学びます。find -maxdepth 1 -type f -exec sh -c ' b=$(head -c1 "$1") [ "$b" = "0" ] && echo mv -- "$1" zero/ ' _ {} \;
または
for f in * do [ "$(head -c1 "$f")" = "0" ] && echo mv -- "$f" zero/ done
最適化された
find
バージョン:find -maxdepth 1 -type f -exec sh -c ' for f in "$@" do [ "$(head -c1 "$f")" = "0" ] && echo mv -- "$f" zero/ done ' _ {} +
どのような場合でも、echo
コマンドが何をすべきかを指示するものから実行するものに変更するには、削除します。