ホームページ システムチュートリアル Linux 2つのcpコマンドの効率的な使い方!

2つのcpコマンドの効率的な使い方!

Jan 02, 2024 pm 12:53 PM
linux Linuxチュートリアル レッドハット Linuxシステム Linuxコマンド Linux 認定 レッドハットリナックス Linuxビデオ

###導入### Linux 上でマウスのクリックだけでグラフィカル インターフェイスを使用できるのは素晴らしいことです...しかし、お気に入りの対話型開発環境とコンパイラがターミナル ウィンドウ、Bash、および Vim である場合は、これらを使用する必要があります。私と同じくらい頻繁に端末を使用します。

端末をあまり使用しない人でも、端末環境を深く理解することで多くの利益を得ることができます。たとえば、cp コマンドを例に挙げると、Wikipedia によると、cp (コピー) コマンドは Unix の最初のバージョンの一部でした。他の一連のコマンド ls、mv、cd、pwd、mkdir、vi、sh、sed、awk とともに、前述の cp は、私が 1984 年に System V Unix システムを紹介したときに学んだコマンドの 1 つです。 cp コマンドの最も一般的な使用法は、ファイルのコピーを作成することです。このような:### リーリー

ターミナルでこのコマンドを実行します。上記のコマンドは、sourcefile という名前のファイルを destfile という名前のファイルにコピーします。コマンド実行前に destfile ファイルが存在しない場合は作成され、既に存在する場合は上書きされます。

このコマンドを何回使ったか分かりません (知りたくない) ですが、テストコードを書くときに頻繁に使用していることはわかっています。現在の通常バージョンを保持して続行するためこれを変更するには、次のコマンドを入力します:

リーリー

私は過去 30 年間にこのコマンドを数え切れないほど使用してきました。また、テスト プログラムの 2 番目のバージョンを作成することに決めたときは、次のコマンドを入力します:

リーリー

これで、プログラムを変更する最初のステップが完了しました。

私は cp コマンドのリファレンス ドキュメントを見ることはほとんどありませんが、イメージ フォルダーを (GUI 環境の「ファイル」アプリケーションを使用して) バックアップしているときに、「cp コマンドにパラメーターがあるのではないか?」と疑問に思い始めました。 「新しいファイルまたは変更されたファイルのみのコピーをサポートします。」 案の定、それは可能です。

効率的な使用法 1: フォルダーを更新する たとえば、コンピューター上にさまざまなファイルを保存するフォルダーがあります。さらに、そのフォルダーに時々新しいファイルを追加する必要があり、写真やファイルなどの一部のファイルを随時変更する必要があります。携帯電話からダウンロードした写真、音楽。

収集したファイルがすべて私にとって価値があると仮定すると、ファイルをコピーして「スナップショット」のように他のメディアに保存したいことがあります。もちろん、バックアップをサポートするプログラムはたくさんありますが、これらのオフライン デバイスを頻繁に使用したり、他のコンピュータに接続したりできるように、ディレクトリ構造をリムーバブル デバイスにより正確にコピーしたいと考えています。

cp コマンドを使用すると、これを簡単に行うことができます。例は次のとおりです。

私の写真フォルダーには、その他という名前のフォルダーがあります。説明のために、ファイルを USB ストレージ デバイスにコピーしました。はじめましょう!

リーリー

上記のコマンドは、ターミナル ウィンドウから完全にコピーされています。この環境にあまり適応できない人もいます。コマンドを入力または実行する前に、接頭辞 me@mydesktop:~/Pictures に注意する必要があります。me は現在のユーザー、mydesktop はコンピュータ名、~/Pictures です。現在の作業ディレクトリ。/home/me/Pictures の完全パスの省略形です。

コマンド cp -r Misc /media/clh/4388-D5FE を入力して実行し、Misc ディレクトリ内のすべてのファイルをコピーします (-r パラメータ、完全名は「recursive」、再帰的処理を意味します)。このディレクトリとサブディレクトリ内のすべてのファイル) を USB デバイスのマウント ディレクトリ/media/clh/4388-D5FE にコピーします。

コマンドの実行後は前のプロンプトに戻ります。ほとんどのコマンドは Unix の特性を継承しています。コマンドの実行後、例外がない場合は何も表示されません。「実行に成功しました」のようなプロンプトは表示されません。タスクが終了する情報。さらにフィードバックを取得したい場合は、-v パラメーターを使用して実行結果をより詳細にします。

下の写真は、USB デバイスからコピーした Misc フォルダーです。この中には合計 9 枚の写真があります。

两个高效的cp 命令用法!

USB ドライブ上のその他の新しいコピーのイメージ

次のように、元のコピー パス ~/Pictures/Misc にいくつかの新しいファイルを追加するとします。


两个高效的cp 命令用法!新しいファイルがマスター ディレクトリに追加されました

ここで、新しいファイルのみをストレージ デバイスにコピーしたいので、cp の "Update" および "Verbose" オプションを使用します。

リーリー

上の最初の行は、cp コマンドと特定のパラメータです (-r は「再帰」、-u は「更新」、-v は「冗長」です)。次の 3 行にはコピーされたファイルに関する情報が表示され、最後の行にはコマンド ライン プロンプトが表示されます。

一般的に、パラメータ -r は、より詳細なスタイル --recursive でも使用できます。ただし、簡単に言えば、-ruv をこれと組み合わせて使用​​することもできます。

効率的な使用法 2: バージョンのバックアップ

最初の例に戻りますが、私は開発中にコード バージョンを定期的にバックアップします。その後、より効果的に機能する別の cp パラメータを見つけました。

假设我正在编写一个非常有用的 Python 程序,作为一个喜欢不断修改代码的开发者,我会在一开始编写一个程序简单版本,然后不停的往里面添加各种功能直到它能成功的运行起来。比方说我的第一个版本就是用 Python 程序打印出 “hello world”。这只有一行代码的程序就像这样:

print 'hello world'
ログイン後にコピー

然后我将这个代码保存成文件命名为 test1.py。我可以这么运行它:

me@desktop:~/Test$ python test1.py
hello world
me@desktop:~/Test$
ログイン後にコピー

现在程序可以运行了,我想在添加新的内容之前进行备份。我决定使用带编号的备份选项,如下:

clh@vancouver:~/Test$ cp --force --backup=numbered test1.py test1.py
clh@vancouver:~/Test$ ls
test1.py  test1.py.~1~
clh@vancouver:~/Test$
ログイン後にコピー

所以,上面的做法是什么意思呢?

第一,这个 --backup=numbered 参数意思为“我要做个备份,而且是带编号的连续备份”。所以一个备份就是 1 号,第二个就是 2 号,等等。

第二,如果源文件和目标文件名字是一样的。通常我们使用 cp 命令去拷贝成自己,会得到这样的报错信息:

cp: 'test1.py' and 'test1.py' are the same file
ログイン後にコピー

在特殊情况下,如果我们想备份的源文件和目标文件名字相同,我们使用 --force 参数。

第三,我使用 ls (意即 “list”)命令来显示现在目录下的文件,名字为 test1.py 的是原始文件,名字为 test1.py.~1~ 的是备份文件

假如现在我要加上第二个功能,在程序里加上另一行代码,可以打印 “Kilroy was here.”。现在程序文件 test1.py 的内容如下:

print 'hello world'
print 'Kilroy was here'
ログイン後にコピー

看到 Python 编程多么简单了吗?不管怎样,如果我再次执行备份的步骤,结果如下:

clh@vancouver:~/Test$ cp --force --backup=numbered test1.py test1.py
clh@vancouver:~/Test$ ls
test1.py test1.py.~1~ test1.py.~2~
clh@vancouver:~/Test$
ログイン後にコピー

现在我有有两个备份文件: test1.py.~1~ 包含了一行代码的程序,和 test1.py.~2~ 包含两行代码的程序。

这个很好用的功能,我考虑做个 shell 函数让它变得更简单。

最后总结

第一,Linux 手册页,它在大多数桌面和服务器发行版都默认安装了,它提供了更为详细的使用方法和例子,对于 cp 命令,在终端中输入如下命令:

man cp
ログイン後にコピー

对于那些想学习如何使用这些命令,但不清楚如何使用的用户应该首先看一下这些说明,然后我建议创建一个测试目录和文件来尝试使用命令和选项。

第二,兴趣是最好的老师。在你最喜欢的搜索引擎中搜索 “linux shell tutorial”,你会获得很多有趣和有用的资源。

第三,你是不是在想,“为什么我要用这么麻烦的方法,图形化界面中有相同的功能,只用点击几下岂不是更简单?”,关于这个问题我有两个理由。首先,在我们工作中需要中断其他工作流程以及大量使用点击动作时,点击动作可就不简单了。其次,如果我们要完成流水线般的重复性工作,通过使用 shell 脚本和 shell 函数以及 shell 重命名等功能就能很轻松的实现。

以上が2つのcpコマンドの効率的な使い方!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VSCODEに必要なコンピューター構成 VSCODEに必要なコンピューター構成 Apr 15, 2025 pm 09:48 PM

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)

VSCODEは拡張子をインストールできません VSCODEは拡張子をインストールできません Apr 15, 2025 pm 07:18 PM

VSコード拡張機能のインストールの理由は、ネットワークの不安定性、許可不足、システム互換性の問題、VSコードバージョンが古すぎる、ウイルス対策ソフトウェアまたはファイアウォール干渉です。ネットワーク接続、許可、ログファイル、およびコードの更新、セキュリティソフトウェアの無効化、およびコードまたはコンピューターの再起動を確認することにより、問題を徐々にトラブルシューティングと解決できます。

vscodeはMacに使用できますか vscodeはMacに使用できますか Apr 15, 2025 pm 07:36 PM

VSコードはMacで利用できます。強力な拡張機能、GIT統合、ターミナル、デバッガーがあり、豊富なセットアップオプションも提供しています。ただし、特に大規模なプロジェクトまたは非常に専門的な開発の場合、コードと機能的な制限がある場合があります。

vscodeとは何ですか?vscodeとは何ですか? vscodeとは何ですか?vscodeとは何ですか? Apr 15, 2025 pm 06:45 PM

VSコードは、Microsoftが開発した無料のオープンソースクロスプラットフォームコードエディターと開発環境であるフルネームVisual Studioコードです。幅広いプログラミング言語をサポートし、構文の強調表示、コード自動完了、コードスニペット、および開発効率を向上させるスマートプロンプトを提供します。リッチな拡張エコシステムを通じて、ユーザーは、デバッガー、コードフォーマットツール、GIT統合など、特定のニーズや言語に拡張機能を追加できます。 VSコードには、コードのバグをすばやく見つけて解決するのに役立つ直感的なデバッガーも含まれています。

vscodeの使用方法 vscodeの使用方法 Apr 15, 2025 pm 11:21 PM

Visual Studio Code(VSCODE)は、Microsoftが開発したクロスプラットフォーム、オープンソース、および無料のコードエディターです。軽量、スケーラビリティ、および幅広いプログラミング言語のサポートで知られています。 VSCODEをインストールするには、公式Webサイトにアクセスして、インストーラーをダウンロードして実行してください。 VSCODEを使用する場合、新しいプロジェクトを作成し、コードを編集し、コードをデバッグし、プロジェクトをナビゲートし、VSCODEを展開し、設定を管理できます。 VSCODEは、Windows、MacOS、Linuxで利用でき、複数のプログラミング言語をサポートし、マーケットプレイスを通じてさまざまな拡張機能を提供します。その利点には、軽量、スケーラビリティ、広範な言語サポート、豊富な機能とバージョンが含まれます

Apr 16, 2025 pm 07:39 PM

NotePadはJavaコードを直接実行することはできませんが、他のツールを使用することで実現できます。コマンドラインコンパイラ(Javac)を使用してByteCodeファイル(filename.class)を生成します。 Javaインタープリター(Java)を使用して、バイトコードを解釈し、コードを実行し、結果を出力します。

Linuxの主な目的は何ですか? Linuxの主な目的は何ですか? Apr 16, 2025 am 12:19 AM

Linuxの主な用途には、1。Serverオペレーティングシステム、2。EmbeddedSystem、3。Desktopオペレーティングシステム、4。開発およびテスト環境。 Linuxはこれらの分野で優れており、安定性、セキュリティ、効率的な開発ツールを提供します。

GITの倉庫アドレスを確認する方法 GITの倉庫アドレスを確認する方法 Apr 17, 2025 pm 01:54 PM

gitリポジトリアドレスを表示するには、次の手順を実行します。1。コマンドラインを開き、リポジトリディレクトリに移動します。 2。「git remote -v」コマンドを実行します。 3.出力と対応するアドレスでリポジトリ名を表示します。

See all articles