
/src/ディレクトリにあるすべてのファイルやサブディレクトリを/dest/ディレクトリにコピーしたいと思っています。
ただ、次のコマンドでは/src/.dotfileといったドットファイルはコピーされません。
$ cp -Rf /src/* /dest/
このようなドットファイルも含めてすべてのファイル、サブディレクトリをコピーするにはどのようにするのがよいのでしょうか?
次のような方法が思い浮かびましたが、もっとシンプル or スマートな方法がありましたら教えてください。
(a)シェルオプションのdotglobを一時的にONにしてから、上記cpコマンドを実行する。
(b)/src/直下のドットファイルだけ別途指定する。
$ cp -Rf /src/{*,.[^.]*} /dest/
No.2ベストアンサー
- 回答日時:
cp -Rf /src/* /src/.* /dest/
だと/src/. や /src/.. も含んでしまうのでダメでしょうね。
shopt -s dotglob
してからやる方が良いと思います。
またはtarを使うか。
lowrider_2005さん
回答ありがとうございます。
質問してから色々と考え試してみましたが、仰るとおりdotglobを一時的にONにするのが一番シンプルで混乱がないという結論に導かれていきました :)
確かにtarでやる方法もありますね。
でもdotglobが簡単ですね。
No.4
- 回答日時:
bashとかだと、dotglobしても、*を展開すると . と .. が入ってきちゃうから、dotglobでも駄目な場合も。
手っ取り早いのは
$ cp -Rf /src/* /src/.[!.]* /src/..?* /dest/
かなあ?
..doubledotfile
っていうファイルが無いなら
$ cp -Rf /src/* /src/.[!.]* /dest/
でも可かな?
ともかく「echoで試してから」で。
chie65535さん
回答ありがとうございます。
> bashとかだと、dotglobしても、*を展開すると . と .. が入ってきちゃうから、dotglobでも駄目な場合も。
dotglobしても echo .* の場合 . や .. が表示されますが、そもそもdotglobするのは .* とかしたくないからするのであってdotglobがONの場合の echo * では . や .. は含まれません。
dotglobが駄目なケースとは具体的にはどのような場合でしょうか?
回答を拝見していてchie65535さん自身が混乱されているように見えることからも、やはり dotglob を使うのがシンプルでわかりやすくていいのかなと正直思いました。
ごめんなさい :)
Linuxでのドットファイルや名前に空白が入るファイルの扱いは、私が慣れていないだけかもしれませんが、結構気を使いますね。
No.3
- 回答日時:
因みに。
/src/ディレクトリに、a,b,c,d,e,f,g,.a,.b,.c,.h,.i,.jの12個のファイルがあった場合
$ cp -Rf /src/* /dest/
ってやると、*のワイルドカードに引っ掛かるのはa,b,c,d,e,f,gなので、シェルが「/src/*」を「/src/a /src/b /src/c /src/d /src/e /src/f /src/g」に展開し、ファイルを1つ1つ指定したのと同じ状態にしてから、cpを実行する。
つまり
$ cp -Rf /src/a /src/b /src/c /src/d /src/e /src/f /src/g /dest/
が実行される。
cpは、引数が3つ以上指定された場合は「1番目から、最後の引数の1つ前まで」のファイル群を「最後の引数に指定されたディレクトリにコピーする」と言う仕様になっている。
なので
$ cp -Rf /src/* /src/.* /dest/
ってやると、*のワイルドカードに引っ掛かるのはa,b,c,d,e,f,gの6つ、.*のワイルドカードに引っ掛かるのは.a,.b,.c,.h,.i,.jの6つなので、シェルが「/src/* /src/.*」を「/src/a /src/b /src/c /src/d /src/e /src/f /src/g /src/.a /src/.b /src/.c /src/.h /src/.i /src/.j」に展開し、ファイルを1つ1つ指定したのと同じ状態にしてから、cpを実行する。
つまり
$ cp -Rf /src/a /src/b /src/c /src/d /src/e /src/f /src/g /src/.a /src/.b /src/.c /src/.h /src/.i /src/.j /dest/
が実行され、すべてのファイルがコピーされる。
以下の2つの事を覚えておいて欲しい。
・cpのソースファイルの指定は、複数のファイルを列挙しても良い
・ワイルドカードの展開はシェルがやっている。実行するコマンドがやっているのではない
なお「ワイルドカードの展開結果が正しいかどうかを確認する場合」は
echo /src/* /src/.*
を実行してみると良い(特に「.」と「..」がどうなるか不安な場合に)
chie65535さん
ワイルドカードの解説ありがとうございます。
最近シェルを本格的に(?)勉強し始めたのでよい復習になりました。
ちなみに find . -name '*.txt' の場合の * はシェルではなく、findコマンド自身が展開するというのは最近知りました ^^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- UNIX・Linux Ubuntu でinvalid filenameとなるファイルをコピーする方法 3 2023/06/08 22:26
- UNIX・Linux サーバー間のデータコピー(データ形式とデーターフォーマットの変換あり。一定間隔で処理) 2 2023/08/22 22:15
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- UNIX・Linux JSLinuxについて。 Linuxのこの手順のプログラミングは合っているでしょうか。 ①ホームディ 2 2022/06/20 15:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Windows 10 指定したファイルを任意の範囲のディレクトリ内に上書き保存したい 1 2022/11/24 10:42
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
おすすめの美術館・博物館、教えてください!
美術館・博物館が大好きです。みなさんのおすすめをぜひお聞きしたいです。
-
コンビニでおにぎりを買うときのスタメンはどの具?
コンビニでおにぎりを買うとき、何の具材を選ぶことが多いですか?
-
人生でいちばんスベッた瞬間
誰しも、笑いをとろうとして失敗した経験があると思います。
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
多数のサブディレクトリ内のファイルを一括コピーする
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dirコマンドでフォルダ内ファイ...
-
win11のエクスプローラーの右ク...
-
テキストファイルから最終行の抽出
-
ラズパイで『’test.service’をs...
-
ファイル名についている「-」と...
-
Windowsバッチファイルで、隠し...
-
ファイル名の -(ハイフン)を _(...
-
ファイル名一覧の印刷
-
batファイルでPCの設定内容やプ...
-
数字を複数回繰り返す正規表現...
-
エクスプローラーはデータを書...
-
linuxなどの圧縮、解凍は何故一...
-
findとxargsの使い方で
-
~以外を削除する場合(rmコマ...
-
作成日時でのファイル検索
-
特定の更新日付のファイルのみ...
-
DOS コマンドの~zfの意味を教え...
-
Linux(CentOS6.10)での起動エラ...
-
BATファイルの記述で
-
「Vmmem」のメモリ使用量が高い...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dirコマンドでフォルダ内ファイ...
-
ファイル名についている「-」と...
-
ラズパイで『’test.service’をs...
-
テキストファイルから最終行の抽出
-
Linuxで標準出力したファイルの...
-
batファイルの強制終了を回避し...
-
数字を複数回繰り返す正規表現...
-
DOSコマンドのFOR文で空白を含...
-
ファイル名の -(ハイフン)を _(...
-
win11のエクスプローラーの右ク...
-
ftpコマンドで丸ごとダウン...
-
ファイル名一覧の印刷
-
xcopyのエラー情報のはき...
-
特定の更新日付のファイルのみ...
-
oracleの文字コードとlinuxサー...
-
cpコマンドで強制的に上書きし...
-
バッチファイルでのzip形式フォ...
-
ピクチャクリッピングのファイ...
-
作成日時でのファイル検索
-
DOS コマンドの~zfの意味を教え...
おすすめ情報