フォルダにファイルのリストがあります。
./file1.ext
./file2.ext2
./file3.ext
これらすべてのファイルと関連する名前をそれぞれの新しいフォルダに移動したいと思います。たとえば、次のようになります。
./file1/file1.ext
./file2/file2.ext2
./file3/file3.ext
非常に少数のコマンドでこれを行う方法はありますか?
答え1
ループを使用してこれを行うことができます。
for f in *; do
[ ! -d "${f%.*}" ] && mkdir "${f%.*}/"
mv "$f" "${f%.*}/"
done
これにより、現在のディレクトリのすべてのエントリが作成され、移動されます。
${f%.*}
尾拡張を使用してください。また、file1.ext
とfile1.ext1
。
このスクリプトがあると、file1
次の古いスクリプトでは機能しません。file1