回答:
見つける 。-maxdepth 1 -exec mv {} .. \;
これにより、隠しファイルも移動します。
次のメッセージが表示されます。
mv: `。 'を移動できません to `../。 ':デバイスまたはリソースがビジー
移動しようとすると.
(現在のディレクトリ)、それが害を及ぼすことはありません。
-maxdepth 1
確かに使用します。
私もこのテーマに慣れていないので、ここに来ました。なんらかの理由で、上記の方法ではうまくいきませんでした。すべてのファイルをディレクトリからその親ディレクトリに移動するために私がしたことは:
cd to/the/dir
mv * ../
(cd ${ANDROID_NDK_HOME}/android-ndk-r14b/ && mv * ../)
これをシェルに入力します。
mv *.* ..
これにより、すべてのファイルが1レベル上に移動します。
文字*
はワイルドカードです。したがって*.deb
、すべての.debファイルZeitgeist.*
を移動し、Zeitgeist.aviとZeitgeist.srtを1つ上のフォルダーに移動します..
。もちろん、親ディレクトリを示します。
フォルダなどを含むすべてを移動する*
には、代わりに*.*
*
ない*.*
以下よりも簡単なことはできません。
mv * ../
隠しファイルも移動するには:
mv /path/subfolder/{.,}* /path/
mv
はファイルを移動するコマンドであり、*
すべてのファイルとフォルダーを意味../
し、親ディレクトリへのパスです。
bashでは、shopt -s dotglob を使用 して、すべてのファイルを*一致させ、次の方法で簡単に移動できます。
shopt -s dotglob; mv * ..
シェルの設定は変更するまで永続的であるため、これは最適なソリューションではありません
shopt -u dotglob
でも知っておくといいと思います。
(shopt -s dotglob && mv * ..)
。そうすれば、オプションはそのサブシェルに対してのみローカルになります。
エラーが発生せず、毎回機能するメソッド:
ls -1A . | while read -r file
do
mv "./${file}" ..
done
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フォルダー(親ディレクトリ)に移動します。
/the full path
Linuxでは機能しません/the\ full\ path
。スペースでエスケープする必要があります。
ディレクトリを変更する必要はありません。パスの最後に*を含めるだけです。
mv /my/folder/child/* /my/folder/
上記は非隠しファイルのみを移動します。隠しファイルのみを移動するには、。*を使用します
mv /my/folder/child/.* /my/folder/
上記の2つを1つのコマンドに結合できます。
mv /my/folder/child/{.,}* /my/folder/
サブディレクトリに切り替えて、ファイルのコピーまたは移動のために次のコマンドを実行します。
例:aは親ディレクトリで、bはサブディレクトリです。すべてのファイルをbからa(サブディレクトリから親ディレクトリ)に移動/コピーします。
cd b
cp * ..
mv * ..