【Linux】rm と unlink の違い

  • 2023年9月18日
  • Linux

はじめに

今回は Linux コマンドの rm(1) と unlink(1) の違いについて記載します。

コマンドの後ろについているカッコ付の数字は、manページの章立てに該当します。

(1)は1章を意味しており、「汎用コマンド」ということです。

1    汎用コマンド
2    システムコール
3    ライブラリ関数、特に標準Cライブラリ関数
4    特殊なファイル(主に/devにあるデバイス)とドライバ
5    ファイル形式とその使用法
6    ゲームとスクリーンセーバー
7    その他
8    システム管理コマンドとデーモン

https://ja.wikipedia.org/wiki/Man%E3%83%9A%E3%83%BC%E3%82%B8

rmコマンド と unlinkコマンドの違い

いずれもコマンドの中でunlink(2)(システムコール)を呼び出して、ファイルを削除しています。ファイルを削除するという目的ではrmコマンド、unlinkコマンドいずれも同じですが、ファイルを特定して削除する場合はunlinkコマンド、複数指定はrmコマンドを使うと速いといったところですね。

rmコマンド

  • 多機能
  • オプション指定ができる
  • ファイルやディレクトリの削除ができる
  • ワイルドカード指定できる
  • ディレクトリを再帰できる
  • 多機能ゆえ、unlinkよりも処理が遅い

unlinkコマンド

  • シンプル
  • オプション指定がない
  • ファイルは削除できるがディレクトリは削除できない。
  • ワイルドカード指定できない
  • ディレクトリを再帰できない
  • シンプルゆえ、rmよりも処理が速い

参考リンク

参考リンクは以下を参照してください。

mコマンドのmanページ

rm – ファイルやディレクトリの削除を行う

https://manpages.ubuntu.com/manpages/jammy/ja/man1/rm.1.html

unlinkコマンドのmanページ

unlink – unlink 関数を呼び出し指定されたファイルを削除する

https://manpages.ubuntu.com/manpages/jammy/ja/man1/unlink.1.html

unlinkシステムコールのmanページ

unlink, unlinkat – 名前を削除し、場合によってはそれが参照してい

https://manpages.ubuntu.com/manpages/jammy/ja/man2/unlink.2.html

さいごに

今回は Linux コマンドの rm(1) と unlink(1) の違いについて記載しました。

参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です