"Find"의 두 판 사이의 차이
ph
5번째 줄: | 5번째 줄: | ||
이게 더 낫다. | 이게 더 낫다. | ||
find . -executable -type f | find . -executable -type f | ||
+ | |||
+ | |||
== find only ASCII text file == | == find only ASCII text file == | ||
− | + | find . -type f -exec grep -Iq . {} \; -and -print | |
[http://stackoverflow.com/a/13659891/766330] | [http://stackoverflow.com/a/13659891/766330] | ||
+ | |||
15번째 줄: | 18번째 줄: | ||
− | |||
− | |||
− | |||
− | |||
+ | == 최근 1분간 바뀐 파일 찾기== | ||
+ | $ find . -mmin -1 | ||
+ | |||
+ | |||
+ | |||
+ | == 최근 24시간동안 바뀐 파일 찾기 == | ||
+ | $ find /<filesystem_name> -xdev -mtime 0 -ls | ||
+ | http://www-903.ibm.com/kr/techinfo/pseries/tech/techdoc4.html#bb] | ||
− | |||
− | |||
− | |||
− | |||
− | + | == 찾아서 etags== | |
− | + | find . -name '*.cpp' -or -name '*.h' | xargs etags --append | |
− | |||
− | |||
[http://www.gnu.org/software/libtool/manual/emacs/Create-Tags-Table.html#Create-Tags-Table emacs manual]에는 | [http://www.gnu.org/software/libtool/manual/emacs/Create-Tags-Table.html#Create-Tags-Table emacs manual]에는 | ||
− | |||
find . -name "*.[chCH]" -print | etags - | find . -name "*.[chCH]" -print | etags - | ||
− | |||
2017년 4월 10일 (월) 02:45 판
목차
모든 실행파일 찾기
일단 file * | grep executable 이 제일 간단함. find명령으로는
find . -depth 1 -perm -u+x ! -type d
symbolic link까지 찾는다는게 문제. ! -type l 로 거를 수 있으나 ln의 source file이 executable일 수 있음. 이게 더 낫다.
find . -executable -type f
find only ASCII text file
find . -type f -exec grep -Iq . {} \; -and -print
오늘 바뀐 파일 찾기
$ touch -t `date +%m%d0000` creteria ; find . -newer creteria -type f
최근 1분간 바뀐 파일 찾기
$ find . -mmin -1
최근 24시간동안 바뀐 파일 찾기
$ find /<filesystem_name> -xdev -mtime 0 -ls
http://www-903.ibm.com/kr/techinfo/pseries/tech/techdoc4.html#bb]
찾아서 etags
find . -name '*.cpp' -or -name '*.h' | xargs etags --append
find . -name "*.[chCH]" -print | etags -
- 크기가 큰 파일 찾아 sort (출처: http://www-903.ibm.com/kr/techinfo/pseries/tech/techdoc4.html#bb )
find / -xdev -size +2048 -ls |sort -r +6
(+6 option did not work on CentOS 6)
- find symbolic link files those are not containing 'external' string in their full path.
find . -wholename '*external*' -prune -o -type l -exec ls -l '{}' \;
$ # prints only one line
$ find / -name blabla\* -print -quit
$
$
$ # execute two (or more) statements
$ # simple. use two (or more) exec commands.
$ find . -name \*jpg -o -name \*JPG -exec echo \{} \; -exec face-detect-using-xml.exe -x cascade.xml \{} \;
run multiple exec
find . -name "*.txt" -exec echo {} \; -exec grep banana {} \;
첫번째 명령 성공해야 두번째도 실행. 무조건 하려면 아래와 같이.
find . -name "*.txt" \( -exec echo {} \; -o -exec true \; \) -exec grep banana {} \;
find . -type d -exec sh -c "echo -n {}; echo -n ' x '; echo {}" \;
[3]
다음과 같이 하는수도 있다.
find ... | while read -r file; do echo "look at my $file, my $file is amazing"; done
또는
while read -r file; do echo "look at my $file, my $file is amazing"; done <<< "$(find ...)"