私も初心者なのでここに来ました。なぜか上記の方法ではうまくいきませんでした。あるディレクトリから親ディレクトリにすべてのファイルを移動させるためにやったことは、次のようなものでした:
cd to/the/dir
mv * ../
mv * ../
隠しファイルも移動させるため、これ以上単純にはできません。
mv /path/subfolder/{.,}* /path/
mv
はファイルを移動するコマンドで、*
はすべてのファイルとフォルダを意味し、../
は親ディレクトリへのパスです。
bashでは* shopt -s dotglob**を使って、すべてのファイルにマッチするようにして、
shopt -s dotglob; mv * ..
で移動させることができます。
エラーが発生せず、毎回動作するメソッド:
ls -1A . | while read -r file
do
mv "./${file}" ..
done
``` 0x1&
find . -maxdepth 2 -type f -exec mv {} .. \;
上記のバリエーションを使って、サブフォルダから親フォルダにすべてのファイルを移動させました。
年ごとにフォルダにデータを入れていましたが、メタデータを使用することで、すべてのファイルを同じフォルダに入れることができ、管理が楽になりました。
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
``` など。
ディレクトリを変更する必要はありません。パスの最後に * を入れればいいだけです。
mv /my/folder/child/* /my/folder/
上記では、非隠しファイルのみを移動します。隠しファイルだけを移動させるには、.
mv /my/folder/child/.* /my/folder/
も参照して下さい。
Linuxで全てのファイルやフォルダを親ディレクトリに移動させるのは簡単です。
そのフォルダに移動して、このコマンドを使います。
mv * /the full path
例えば、ファイルとフォルダが以下のようになっている場合。
/home/abcuser/test/1.txt
2.txt
3.jpg
4.php
1folder
2folder
cd でそのフォルダに移動します。
cd /home/abcuser/test
mv * /home/abcuser
すべてのファイルとフォルダがabcuserフォルダ(親ディレクトリ)に移動します。