フォルダの内容を1レベル上に移動

フォルダの内容を1レベル上に移動

解凍されたディレクトリがありますが、フォルダにあります。コンテンツを一歩上に移動するにはどうすればよいですか? SSH経由でCentOSにアクセスします。

答え1

"myfolder"というフォルダの場合、フォルダがファイル階層の1レベル以上(必要なポイント)の場合、コマンドは次のようになります。

mv myfolder/* .

たとえば、データがある場合はコマンドを/home/myuser/myfolder実行します。/home/myuser/

答え2

明確にするために、Ruduの答えと上記のコメントから抜粋しました。

.htaccess、.gitなどのすべてのエントリを移動する必要がある場合は、コマンドに*と.*を含める必要があります。このように:

 mv subfolder/* subfolder/.* .

これにより、サブフォルダの内容が現在のフォルダに移動さ​​れます。最後の「。」前のスペースに注意してください。

答え3

これは次のことで達成できます。

  • 使用rsync:

    rsync -vua --delete-after foo/ .
    
  • 使用cprmdir:

    cp -vaR foo/. . && rmdir foo/
    
  • 有効mvdotglob有効化オプション):

    shopt -s dotglob # Includes filenames beginning with a dot.
    mv -- foo/* .    # Where foo/ is the folder consisting the files.
    shopt -u dotglob # Disables previously enabled dotglob option.
    

    foo/フォルダの内容が1レベル上に移動されます。

    参照:help shoptman bash

  • 使用mv(推奨事項に応じてここ):

    mv foo/* foo/.[^.]* . && rmdir foo/
    

    注: 名前はfoo/..bar..

    注:POSIXシェルの場合[!.]

答え4

短縮命令があります。

cp */* .

これにより、すべてのサブフォルダの内容がコピーされます。もちろん、以下を使って移動できます。

mv */* .

または、新しい拡張子を指定してください。

cp */* /destination 

関連情報