ファイル操作

ファイルとディレクトリの基本(きほん) 操作(そうさ)

basename

パスからファイル(めい)抽出(ちゅうしゅつ)

basename /path/to/file.txt
# 出力: file.txt

bat

現代(げんだい) (てき) な cat の代替(だいたい) 。シンタックスハイライト、行番号(ぎょうばんごう) 、git 統合(とうごう) をサポート

# ファイルを表示(自動シンタックスハイライト)
bat config.yaml

# 行番号と git 変更を表示
bat --style=numbers,changes file.py

# プレーンテキストのみを表示(装飾なし)
bat --plain file.txt

# 2つのファイルを比較
bat --diff file1.txt file2.txt

# 不可視文字を表示
bat --show-all script.sh

cd

ディレクトリを変更(へんこう) 、サポートされるディレクトリシンボル:

  • . : 現在(げんざい) のディレクトリ
  • .. : (おや) ディレクトリ
  • ~ : ホームディレクトリ
  • - : (まえ) のディレクトリ
cd ..
cd ~
cd -

cp

ファイルとディレクトリをコピー

# ディレクトリをコピー
cp -r my_dir /tmp/my_dir1

# ファイルをコピー
cp new_file.txt copy_file.txt
cp [file ...] [destination]

eza

現代(げんだい) (てき) な ls/tree の代替(だいたい) 。カラー出力(しゅつりょく) 、アイコン、git ステータスをサポート

# 基本リスト(カラー出力)
eza

# アイコン付き長形式
eza -l --icons

# git ステータスを表示
eza -l --git

# ツリー表示
eza --tree --level=2

# ディレクトリのみを表示
eza -D

# サイズで並べ替え
eza -l --sort=size

# 完全な情報(git、時刻を含む)
eza -la --git --icons --time-style=long-iso

fd

現代(げんだい) (てき) な find の代替(だいたい) 。より簡潔(かんけつ)構文(こうぶん)高速(こうそく)検索(けんさく)

# ファイル名を検索
fd pattern

# 特定の拡張子を検索
fd -e py

# ディレクトリを検索
fd -t d dirname

# 隠しファイルを検索
fd -H pattern

# 検索深度を指定
fd -d 2 pattern

# コマンドを実行(find -exec に類似)
fd -e log -x rm {}

# ディレクトリを除外して検索
fd pattern -E node_modules

find

ファイルを検索(けんさく)

# 基本検索
find / -name "filename"
find / -type d -name "<directory-name>"

# 正規表現を使用
find . -name "*.so*"

# 検索してコマンドを実行
find . -type f -name "file1.go" -exec dirname {} \;

ln

ファイルリンクを作成(さくせい)

# ソフトリンクを作成
ln -s [source] [destination]
ln -s /usr/local/lib/libz.so.1 /usr/lib64/libz.so.1

ls

ディレクトリ内容(ないよう)一覧(いちらん) 表示(ひょうじ)

# OS バージョンを確認
ls /etc/*release*

# 人間が読みやすい形式で一覧表示
ls -lh

# すべてのファイルを一覧表示(隠しファイルを含む)
ls -al

# inode 情報を一覧表示
ls -li

mkdir

ディレクトリを作成(さくせい)

# 単一のディレクトリを作成
mkdir <folder_name>

# 多層ディレクトリを作成
mkdir -p <folder_name>/<subfolder>/<subfolder>

mv

ファイルを移動(いどう) /名前(なまえ) 変更(へんこう)

# ファイル名を変更
mv new_file.txt sample_file.txt

# ファイルを移動
mv [file ...] [destination]

# 上書き確認
mv -i file1 file2

ncdu

インタラクティブなディスク使用量(しようりょう) 分析(ぶんせき) ツール。(おお) きなファイルを素早(すばや)発見(はっけん)

# 現在のディレクトリを分析
ncdu

# 指定したディレクトリを分析
ncdu /var/log

# 特定のディレクトリを除外
ncdu --exclude .git

# 結果をエクスポート
ncdu -o output.json /home

# エクスポートした結果を読み込む
ncdu -f output.json

# 読み取り専用モード(削除禁止)
ncdu -r /

インタラクティブ操作(そうさ)

  • ↑/↓ : ナビゲーション
  • Enter : ディレクトリに(はい)
  • d : 選択(せんたく) 項目(こうもく)削除(さくじょ)
  • n : 名前(なまえ)(なら)()
  • s : サイズで(なら)()
  • q : 終了(しゅうりょう)

rm

ファイルまたはディレクトリを削除(さくじょ)

# 基本構文
rm [OPTION]... [FILE]...

# ディレクトリを再帰的に削除
rm -r [DIRECTORY NAME]

# 削除前に確認
rm -ri

scp

セキュアコピー

# ローカルファイルをリモートにコピー
scp -i test.pem -v "C:\Users\User\Downloads\api-server.jar" ec2-user@52.74.112.210:/tmp

# リモートからローカルにファイルをコピー
scp -i test.pem ec2-user@[ip]:/home/java/api/server.log [download_destination]

touch

(から) ファイルを作成(さくせい) またはタイムスタンプを更新(こうしん)

# 新しいファイルを作成
touch new_file.txt