カテゴリ: Linuxコマンド集 更新日: 2026/02/07

cp --strip-trailing-slashesオプションを完全解説!初心者でもわかる末尾スラッシュの扱い方

cp --strip-trailing-slashesオプション|末尾のスラッシュを取り除いて処理する
cp --strip-trailing-slashesオプション|末尾のスラッシュを取り除いて処理する

先生と生徒の会話形式で理解しよう

生徒

「先生、Linuxでファイルをコピーするときに、ディレクトリ名の最後にスラッシュを付けたり付けなかったりするのって、何か違いがあるんですか?」

先生

「うん、実はその末尾のスラッシュがあるかないかで、cpコマンドの動作が変わる場合があるんだよ。特に--strip-trailing-slashesオプションを使うときにね。」

生徒

「へぇ、そんな細かい違いがあるんですね!そのオプションってどんな時に使うんですか?」

先生

「じゃあ今日はcp --strip-trailing-slashesオプションについて、丁寧に解説していこう!」

1. cpコマンドとは?

1. cpコマンドとは?
1. cpコマンドとは?

cpコマンドは、Linuxでファイルやディレクトリをコピーするための基本的なコマンドです。コピー元とコピー先を指定することで、ファイルを別の場所に複製したり、バックアップを作ったりするときによく使われます。

例えば、以下のように使います。


cp file.txt backup.txt

この例では、file.txtbackup.txtという名前でコピーしています。

2. ディレクトリ名の末尾スラッシュの意味とは?

2. ディレクトリ名の末尾スラッシュの意味とは?
2. ディレクトリ名の末尾スラッシュの意味とは?

Linuxのコマンドでは、ディレクトリ名の末尾にスラッシュ(/)を付けることがあります。たとえば、mydirmydir/は見た目は似ていますが、コマンドによっては取り扱いが違うことがあります。

特にcpコマンドでは、末尾のスラッシュがあると「中身をコピー」、スラッシュがないと「ディレクトリごとコピー」となるケースがあるため、動作が変わってしまうことがあります。

3. --strip-trailing-slashesオプションとは?

3. --strip-trailing-slashesオプションとは?
3. --strip-trailing-slashesオプションとは?

--strip-trailing-slashesオプションは、cpコマンドのコピー元やコピー先に付いている「末尾のスラッシュ(/)」を無視して処理するオプションです。

このオプションを使うと、スラッシュがあるかどうかに関係なく、コマンドの動作が統一されるため、スクリプトなどで安定した動作をさせたいときに便利です。

例えば次のように使用します。


cp --strip-trailing-slashes mydir/ backup/

このコマンドでは、mydir/というディレクトリの末尾スラッシュが自動的に取り除かれてから処理されます。

4. 実際に比較してみよう

4. 実際に比較してみよう
4. 実際に比較してみよう

実際に末尾スラッシュの有無で動作がどう変わるかを比較してみましょう。以下のようなフォルダ構成を例にします。

mydirの中にはsample.txtというファイルが入っているとします。

スラッシュなしでコピーした場合


cp -r mydir backup/

この場合はbackup/mydir/というディレクトリが作られ、その中にsample.txtが入ります。

スラッシュありでコピーした場合


cp -r mydir/ backup/

この場合はmydirの中身だけがbackup/の中にコピーされます。つまりbackup/sample.txtという形になります。

--strip-trailing-slashesを使った場合


cp -r --strip-trailing-slashes mydir/ backup/

この場合はmydirの末尾スラッシュが無視されるため、「ディレクトリごとコピー」として処理されます。

5. スクリプトや自動処理での便利さ

5. スクリプトや自動処理での便利さ
5. スクリプトや自動処理での便利さ

--strip-trailing-slashesオプションは、自動化スクリプトbashなどのシェルスクリプトでとても役立ちます。なぜなら、ユーザーの入力や処理の途中で末尾にスラッシュが付いたり付かなかったりすることがあるからです。

そういった揺れを避け、安定して同じ動作をさせたいときに、このオプションを付けるだけで意図通りのコピーが可能になります。

6. 他の便利なオプションとの組み合わせ例

6. 他の便利なオプションとの組み合わせ例
6. 他の便利なオプションとの組み合わせ例

--strip-trailing-slashesは他のオプションと一緒に使うことができます。以下は一例です。

-v(verbose)と組み合わせてコピー内容を表示


cp -rv --strip-trailing-slashes mydir/ backup/
‘mydir’ -> ‘backup/mydir’

--no-preserve=modeでパーミッションを無視


cp -r --strip-trailing-slashes --no-preserve=mode mydir/ backup/

このように他のオプションと一緒に使うことで、より柔軟にファイルやディレクトリをコピーすることが可能になります。

7. 注意点とまとめておきたいポイント

7. 注意点とまとめておきたいポイント
7. 注意点とまとめておきたいポイント

このオプションはあくまで「末尾のスラッシュを取り除くだけ」で、コピーそのものの内容を変えるわけではありません。ただ、動作の違いに敏感なシェルスクリプトでは大きな違いになります。

特に、ユーザーがコピー元を手入力したときなどに、mydirmydir/かで挙動が違って困るような場面に非常に有効です。

初心者の方は普段あまり気にしないかもしれませんが、「正しくファイルをコピーしたつもりなのに、意図しない場所に保存された」というトラブルを防ぐために、--strip-trailing-slashesの使い方を知っておくと安心です。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
find -printオプションとは?初心者でも理解できるLinux検索結果の出力方法
New2
テキスト・データ処理
less -Xオプションの使い方を完全ガイド!終了後も画面内容を残す方法
New3
ファイル・ディレクトリ操作
lsコマンドの-lオプションでファイルの詳細情報を一覧表示しよう!初心者でもわかる使い方と意味を徹底解説
New4
ファイル・ディレクトリ操作
cp -pオプションの使い方|元ファイルのパーミッションやタイムスタンプを保持する方法を初心者向けに解説!
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
lsコマンドの-lオプションでファイルの詳細情報を一覧表示しよう!初心者でもわかる使い方と意味を徹底解説
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cdコマンドとは?Linuxでディレクトリを移動する基本を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
rmコマンドとは?Linuxでファイルやディレクトリを削除する基本