-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoneliners.txt
67 lines (49 loc) · 3.44 KB
/
oneliners.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#MysqlでFKの一覧を調べるワンライナー
mysql -u resolver --password=resolver resolver < TableList.sql |sed 's/\\n/&\
/g'| grep 'CONSTRAINT .* FOREIGN KEY'|cut -d ' ' -f4 > FKList
# ファイル名を置換するワンライナー
ls *.png | cut -d ' ' -f14,15,16,17 |perl -nle '$o=$_;$_=~s/\s/_/i;$_=lc($_);$_=~s/^/icon_/i;rename($o, $_);'
ls *.png | cut -d ' ' -f14,15,16,17 |perl -nle '$o=$_;$_=~s/\s/_/i;$_=lc($_);$_=~s/^/button_/i;rename($o, $_);'
ls *.png |perl -nle '$o=$_;split($_);print $_'
# .svnを消す
rm -rf `find ./ -type d -name .svn ! -regex \.svn/. -print`
rm -rf `find ./ -type d -name __MACOSX ! -regex __MACOSX/. -print`
rm -rf `find ./ -type f -name vssver2.scc ! -regex vssver2\.scc -print`
rm -rf `find ./ -type f -name .DS_Store ! -regex \.DS_Store -print`
hogehoge.txtより最終更新日が新しい/path/to/dir以下のファイル名を表示
1. find /path/to/dir -type f -newer hogehoge.txt
hogehoge.txtより最終更新日が古い/path/to/dir以下のファイル名を表示
1. find /path/to/dir -type f ! -newer hogehoge.txt
最終更新日が2008年3月1日0時より新しい、/path/to/dir以下のファイル名を表示 ※3/21 「-d」が抜けていたのを修正しました。
1. touch -m -d '2008/03/01 00:00:00' hogehoge
2. find /path/to/dir -type f -newer hogehoge
最終更新日が2008年3月1日0時より古い、/path/to/dir以下のファイルを削除
1. touch -m -d '2008/03/01 00:00:00' hogehoge
2. find /path/to/dir -type f ! -newer hogehoge -exec rm {} \;
-execの{}には、findでマッチした各ファイル名が入って、指定したコマンドが実行されます。最後の\;を忘れずに。
findの結果を受けてコマンドを実行するのは、xargsでもできます。
/path/to/dir以下の.svnディレクトリを一括削除
1. find /path/to/dir -type d -name '.svn' | xargs rm -rvf
subversionを使っていると、使う機会があるかもしれません。
diffも便利です。
指定した二つのディレクトリ内で、異なっているファイルがないか調べる。
1. diff -brtBEq /path/to/dir1 /path/to/dir2
findとsedでディレクトリ内のファイルからある文字列を一括置換する
find . -name "*.hbm.xml" -exec sed -i 's/hibernate-mapping-2.0/hibernate-mapping-3.0/g' {} \;
b、t、B、Eで、タブ、スペース、空行の違いが無視されます。
rは再帰的に、qはファイル名だけ表示するオプションです。
文字コード・改行変換
find . -name '*.sql' | xargs nkf --overwrite -w -Lu
iconv -s -f SHIFT_JIS -t UTF-8
find . -name '*.java' | xargs nkf --overwrite -w -Lu --ic=EUC-JP --oc=UTF-8
killする方法
pgrep screen | sudo xargs kill
Findで見つかった全ファイルをディレクトリ構造ごとコピーする
find ./ -type f -mtime -1 | cpio -pd ../banner
find ./ -type f -mtime -2 -name "*.scala" | cpio -pd
find ./ -type f -mtime -2 -name "*.pdf" | cpio -pd ../pdf
../work Subversion の .svn や Mac 固有の .DS_Store, ._* を含めず zip アーカイブを作成する
zip -r [アーカイブ名] [アーカイブ対象ディレクトリ] -x *.svn* *.DS_Store* *._*
svnでディレクトリ全体をignoreをかけるコマンド
svn propset svn:ignore ‘*’ [ディレクトリ名]/
svn statusで変更があったファイルのみディレクトリ構造毎別なディレクトリにコピーする湾来名 > svn status | cut -d ' ' -f8 | cpio -pd ../work