1. ホーム
  2. linux

[解決済み] 隠しファイルを含む全てのファイルを親ディレクトリに移動させる方法(※1

2022-07-27 04:06:50

質問

よくある質問だと思うのですが、回答が見つかりませんでした。

このように隠しファイルも含めて*経由ですべてのファイルを親ディレクトリに移動するにはどうすればよいでしょうか。

mv /path/subfolder/* /path/

これによって、すべてのファイルが期待通りに親ディレクトリに移動されますが、隠しファイルは移動されません。どうすればいいのでしょうか?

どのように解決するのですか?

この件に関する包括的な解決策は、UNIX & Linuxの回答で見つけることができます。 あるディレクトリから別のディレクトリにすべてのファイル (隠しファイルを含む) を移動するにはどうすればよいですか。 . Bash、zsh、ksh93、標準(POSIX)shなどでの解決策が示されています。


この2つのコマンドは一緒に使うことができます。

mv /path/subfolder/* /path/   # your current approach
mv /path/subfolder/.* /path/  # this one for hidden files

または全部まとめて( ありがとうございます ):

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/.. で、これはディレクトリと親ディレクトリです。 フォルダ内の「.」と「...」はどのような意味ですか? ).


コピーするだけなら、mere:

cp -r /path/subfolder/. /path/
#                     ^
#                     note the dot!

これは、通常のファイル、隠しファイルを問わず、すべてのファイルをコピーします。 /path/subfolder/. は "このディレクトリからのすべて" に展開されます (ソースはこちら)。 隠しファイルや隠しディレクトリとその内容を含むように cp でコピーするにはどうすればよいですか? )