【Linux】cpコマンドでコピー元フォルダ直下の隠しファイルをコピーする方法

注意
本記事は2021年9月12日時点のものです。
この記事はこんな人にオススメ
・コピー元フォルダの隠しファイルがコピー出来なくて困ってる人
スポンサーリンク

社会人になり、Linuxを触り始めたのが10年以上前。それから幾度となくお世話になっているcpコマンド。

そのcpコマンドでこれまで全く気付かなかった仕様を先日確認したため、忘れないようにメモしておくことにします。(個人的備忘)

コピー元フォルダ直下の隠しファイルがコピーできない!?

↑のようにtopdirフォルダ直下とsubdirフォルダ直下に隠しファイルがあるとします。

findコマンドで確認すると、

というような感じ。

topdir配下のファイルをアスタリスク「*」指定でコピーしてみます。

すると、subdirフォルダ直下の隠しファイル(.subdir_file)がコピーできているのに対して、topdirフォルダ直下の隠しファイル(.topdir_file)がコピーできていないことが確認できます。

つまり、アスタリスク「*」を使って全てコピーと指定してもコピー元フォルダ直下の隠しファイルはコピーできないということ。

ぐーぐーぺこりんこ
こんな仕様になっているというのは知らなかったデス。。。目からウロコ。

スポンサーリンク

cpコマンドにちょっとした小細工することで対応可能

じゃ、どうやればコピーできるようになるの?ということですが、色々と調べた結果、以下のサイトに行き着きました。

(参考URL)
How to copy with cp to include hidden files and hidden directories and their contents?
参考URL先の情報より、

↑こんな感じにすれば、隠しファイルもコピーできるっぽい。

スポンサーリンク

自分でもやってみた

早速試してみることに。

まず、

コピー先のフォルダ内を全て削除して、試してみると・・・

こんな感じでコピー元フォルダ直下の隠しファイル(.topdir_file)がコピーできることを確認。ただ、サブフォルダがコピーされていないことも確認。これではダメ。

・・・ということは、参照URL先に記載された通り、

cpコマンドを2回実行すれば、実現できるということのようです。バッチ組むときには気をつけておくべきポイントの一つになるかな。

ポイント
1回目のcpコマンドはコピー元フォルダ直下の隠しファイル以外をコピー、2回目のcpコマンドはコピー元フォルダ直下の隠しファイルをコピーということ。
ぐーぐーぺこりんこ
これは勉強になりました。


スポンサーリンク

ためになったと思ったら「いいね」や「シェア」お願いします!