最終更新日: 2026-08-29
TOP(About this memo)) > 一覧(Linux) > ファイル操作コマンド
cat <ファイル> … ファイルの内容を表示touch <ファイル> … 空ファイルを作成(既存ファイルの場合はタイムスタンプを更新)mkdir
-p 親ディレクトリも必要に応じて作成するwc -l <ファイル> … 行数を数えるlocate <ファイル名> … ファイルの場所を検索(あらかじめ作成されたデータベースを参照するため高速。updatedb で更新される): > <ファイル名> … ファイルの中身を空にするcp <コピー元> <コピー先>-R、-r(--recursive) … コピー元にディレクトリを指定した場合、再帰的に(サブディレクトリも含めて)コピーする-a … サブディレクトリや属性なども含め、可能な限り全てを保持しながらコピーする(-dR --preserve=all と同様)
cp -ap という書き方をよく見かけるが、-a は -p の内容を含んでいるため冗長。-p … パーミッションと所有者とタイムスタンプを保持する(--preserve=mode,ownership,timestamps 相当)-f … 強制的に上書きする-i … 上書きするかどうか確認するmv <変更前のファイル名> <変更後のファイル名>mv <ファイル名> <移動先のディレクトリ>/-i … 上書きの確認をする(デフォルトでは確認なしに上書きされる)-f … 確認なしで削除する-r … ディレクトリを再帰的に削除するls で同じパターンを実行して対象を確認してから実行する。cp より高機能で、除外指定や差分転送ができる。リモートホストとの同期にも使える。rsync -ahvn --progress <ユーザー名>@<ホスト>:/var/www/html/* /var/www/html/ --max-size=10M
-a … なるべくコピー元のファイルと同一条件でコピーする-h … ファイルサイズの表示を読みやすくする-v … 詳細を出力する-n(--dry-run) … 実際には転送せず、対象ファイルを確認する--max-size … 転送対象のファイルサイズの上限を指定する--progress … 転送状況を表示する--exclude … 除外するパスを指定するrsync -a /src/ /dest/ --exclude '/tmp/'
less は q で終了する。more もほぼ同じだが、more は末尾までいくと終了する。/ で前方、n で次の候補、N で前の候補。SPACE で1画面進む、b で1画面戻る。tail -n 10 <ファイル> … 末尾10行を表示(-n 10 は省略してもデフォルトで10行)head は先頭から表示する。tail -f <ファイル> … 追記を監視し続ける(ログの確認に使う)-v … マッチしない行を表示する-i … 大文字小文字を区別しない-r … サブディレクトリを再帰的に検索する-n … 行番号を表示するegrep は拡張正規表現が使える grep の別名。現在は grep -E の使用が推奨されている(egrep は非推奨扱い)。find ./ -type f -exec sudo chmod 644 {} \;
-type f はファイル、-type d はディレクトリを対象にする。-exec の終端は ; だが、シェルが解釈してしまうためバックスラッシュでエスケープする。find config/ -type f | xargs grep storage_path | grep framework
storage_path を含むものを検索し、さらにそこから framework を含む行のみ表示する。find ./ -mmin -120
brew install rename
find ./ -type f -name "*.txt" | xargs rename 's/\.txt$/.md/'
ln fileA fileBfileA の中身を変更すると fileB にも反映される。ln -s fileA fileBbrew install tree(macOS)tree . # カレントディレクトリ配下のツリーを出力
tree ./some-dir/ # ディレクトリを指定
tree -d . # ディレクトリのみ出力
tree -L 2 . # 2階層まで表示
tree -h . # ファイルサイズも出力
tar -zcvf archive.tar.gz <ディレクトリ>tar -zxvf archive.tar.gzc は create、x は展開、v は実行状況を表示、f は対象ファイル名の指定、z はgzipによる圧縮。gzip -d file.gzssh <ユーザー名>@<ホスト> "tar -zcf - /path/to/dir" > ./archive.tar.gz
-f - によって、アーカイブをファイルではなく標準出力に書き出している。それをSSH経由でローカルのファイルにリダイレクトしている。