GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで別のファイルにリストされているファイルを削除する方法

Linuxオペレーティングシステムのディストリビューションでは、何でもできます。このようなオープンソースのオペレーティングシステム環境では、オペレーティングシステムについて知っておくべきことは何でもジェットコースターを利用できます。

オペレーティングシステムの必要性と継続的な必要性を明確に定義する重要な側面の1つは、ファイル管理です。 Linuxほどファイル管理を処理するオペレーティングシステムはありません。システムとユーザーファイルのセキュリティを制限、作成、または強化するかどうかにかかわらず、Linuxは最高のユーザーエクスペリエンスとパフォーマンスを提供します。

Linuxターミナルまたはコマンドラインインターフェイスは、ファイルの作成、名前変更、移動、および削除に関連するコマンドを介してファイルを操作するための柔軟な環境です。別のファイル操作の微調整を学んだ場合はどうなりますか?

この記事では、Linuxオペレーティングシステム環境で別のファイルにリストされているファイルを削除する方法について説明します。

実際のシナリオ

参考までにダミーのディレクトリツリーを作成します。次のディレクトリツリー構造を検討してください。

$ツリー

上記のスクリーンキャプチャから、 TestDel 絶対パスが/home / dnyce / TestDelの親ディレクトリです。 。

 $ pwd 

TestDel ディレクトリには他に4つのディレクトリがあります( docx_files jpg_file pdf_file 、および xml_files )その中には、さまざまな形式(docx、jpg、pdf、およびxml)のファイルが入力されています。

ここで、これらのファイルの一部を削除する場合は、最初にそれらの絶対パスをファイルにリストする必要があります。 tobeDeleted.txtというテキストファイルを作成します これらのファイルのいくつかへのパスを追加します。

 $ sudo nano tobeDeleted.txt 

リストされたファイルが削除されるファイルができたので、削除を開始して実行する実行可能な方法論を調べることができます。

方法1:xargsコマンドを使用する

xargsの下 アプローチ、 stdinからの入力 xargsによって読み取られます コマンドを実行してから、他のコマンドに関連付けることができる引数を使用するように変換します。

上記のtobeDeleted.txtにリストされているファイルを削除するには ファイルの場合、 xargsを実装して実行します 次のようにコマンドを実行します。 xargs コマンドは、 tobeDeleted.txtの絶対パスを指す必要があります テキストファイル。

 $ xargs -I {} rm -r "{}"  

このコマンドは、リストされたファイルの絶対パスを読み取り、削除を開始するためにそれらの実際の場所を確認します。

プレースホルダー"{}" rm -rのリストされたファイル名パスを引用します -Iの後に削除するコマンド 文字列を、削除する次のファイル名パスに置き換えます。

これで、treeコマンドを実行して、リストされたファイルが実際に削除されたことを確認できます。参照ポイントとして、次のcatコマンドが出力されます。

 $ cat tobeDeleted.txt 
$ツリー/home/ dnyce / TestDel 

ご覧のとおり、最初の13個のファイルのうち10個のファイルが残っています。

方法2:sedコマンドを使用する

sedのコンパクトな1行のアプローチは、別のファイルにリストされているファイルを簡単に削除するのに役立ちます。 tobeDeleted.txtを更新します 新規参入者と。

 $ sudo nano tobeDeleted.txt 

sed 上記のスクリーンキャプチャに表示されたファイルの削除に使用するコマンドは、次のようになります。

 $ sed's/.*/rm -r "\ 0" /'/home/dnyce/tobeDeleted.txt 

プレースホルダー"\0" rm -rによる削除用のファイル名パスを指します sのコマンド ファイルパスを、さまざまなファイル拡張子を持つリスト上の個別のアイテムとして扱います(.*)

お気づきかもしれませんが、 sed コマンドは実際のファイル削除を実行するのではなく、快適に実行できる適切な削除コマンドを生成します。

ツリーを再実行します catコマンドを使用してファイルが確実に削除されるようにするコマンド 基準点として出力します。

 $ cat /home/dnyce/tobeDeleted.txt 
$ツリー/home/ dnyce / TestDel 

リストされたファイルをなんとか削除しました。

方法3:awkコマンドを使用する

もう一度、 tobeDeleted.txtを更新します 新規参入者とのファイル。

 $ sudo nano tobeDeleted.txt 

awk 実行するコマンドは次のとおりです。

 $ awk -v q ='"''$ 0 =" rm -r "q $ 0 q'/home/dnyce/tobeDeleted.txt 

-v 変数qを割り当てます プレースホルダー値" および'$0 = "rm -r " q $0 q' リストされた各ファイルを削除するための結果のコマンドを生成します。

前述のように、 awk コマンドは、リストされたファイルの実際の削除も実行しませんが、使用できるコマンドを生成します:

ツリーを実行します catコマンドを参照するコマンド ファイルの削除を確認するための出力。

 $ cat /home/dnyce/tobeDeleted.txt 
$ツリー/home/ dnyce / TestDel 

Linuxファイル管理ルーチンに新しいスキルを追加することに成功しました。


Linux
  1. LinuxでファイルをUTF-8エンコーディングに変換する方法

  2. Linuxで特定の日付より古いファイルを削除するにはどうすればよいですか?

  3. .fuse_hidden* ファイルを削除するには?

  1. Linuxでルートメール(メールボックス)ファイルを削除する方法

  2. Linuxでコマンドラインからファイルとディレクトリを削除する方法

  3. LinuxファイルでACLを表示または変更する方法

  1. Linuxでファイルを移動する方法

  2. Linuxで.gzファイルと.tar.gzファイルを抽出する方法

  3. LinuxでNetcatを使用してファイルを転送する方法