それはよくある質問のはずですが、答えを見つけることができませんでした。
隠しファイルも含め、すべてのファイルを * 経由で親ディレクトリに移動するには、次のようにします。
mv /path/subfolder/* /path/
これにより、すべてのファイルが期待どおりに親ディレクトリに移動されますが、隠しファイルは移動されません。どうすればいいですか?
ベストアンサー1
これに関する包括的な解決策は、UNIX & Linuxの回答で見つけることができます。すべてのファイル(隠しファイルを含む)をあるディレクトリから別のディレクトリに移動するにはどうすればよいですか?Bash、zsh、ksh93、標準 (POSIX) sh などでのソリューションを示します。
次の 2 つのコマンドを一緒に使用できます。
mv /path/subfolder/* /path/ # your current approach
mv /path/subfolder/.* /path/ # this one for hidden files
または全部一緒に(ありがとうpfnuesel):
mv /path/subfolder/{.,}* /path/
これは次のように展開されます:
mv /path/subfolder/* /path/subfolder/.* /path/
(例:echo a{.,}b
に展開されますa.b ab
)
いくつかの警告が表示されることに注意してください:
mv: cannot move ‘/path/subfolder/.’ to /path/.’: Device or resource busy
mv: cannot remove /path/subfolder/..’: Is a directory
これらは無視してください。これは、 が/path/subfolder/{.,}*
と に展開されるためです。これらはディレクトリと親ディレクトリです(/path/subfolder/.
/path/subfolder/..
フォルダー内の「.」と「..」はどういう意味ですか?)。
単にコピーしたい場合は、単に次のようにします。
cp -r /path/subfolder/. /path/
# ^
# note the dot!
これは「このディレクトリのすべて」に展開されるため、通常のファイルと隠しファイルの両方を含むすべてのファイルをコピーします/path/subfolder/.
(ソース:隠しファイルと隠しディレクトリおよびその内容を含めるように cp を使用してコピーするにはどうすればよいでしょうか?)