�Ɩ��Ŋy���邽�߂�UNIX�e�N�j�b�N�W�u�����v��
���̋L����2008�N�`2009�N�����ĉj�ЂŘA�ڂ��Ă����u�Ɩ��Ŋy���邽�߂�UNIX�e�N�j�b�N�W�v�̌��{�ł��B
�@���̘A�ڂł́AUNIX�nOS���R�}���h���C���ォ�������悭���p���邽�߂ɒm���Ă����ׂ��e�N�j�b�N���A�֗��ȏ��Z���Љ�Ă����܂��B
�@�����́u�t�@�C���E�t�@�C�����e�̌����v�Ɋւ����e�N�j�b�N���Љ�܂��B
�@�Ȃ��ׂ�UNIX�nOS���ʂɓ��Ă͂܂��悤���������̂ŁA���ɋL�q���Ȃ��ꍇ�́AMac OS X�ARed Hat Linux���ł����삵�܂��B�V�F���Ɋւ��ẮAbash�iBourne-Again Shell 2������3�j���z�肵�Ă��܂��B
�@grep�́A�t�@�C���������w�肵���������Ɉ��v�������e���܂ލs��������R�}���h�ł��B�������ɂ͐��K�\�����w�肷�邱�Ƃ��\�ł��B
$ grep�m�I�v�V�����n�m��������n�m�t�@�C�����n
�@�f�t�H���g�ł͎w�肵���������ƈ��v���镔�������������s���\�����܂��B���\�I�ȃI�v�V�����ɂ́A���̂悤�Ȃ��̂������܂��B
-�I�v�V���� |
---|
-i |
-l |
-n |
-v |
���@grep 2.5�ȍ~�̏ꍇ�A���̃I�v�V���������p�\�ł��B
-�I�v�V���� |
---|
--color |
-o (--only-matching) |
-r |
�@grep�R�}���h��p��������2�Љ�܂��B
�@�������uaomori�v���܂ލs�ƕ������uyamanashi�v���܂ލs���A�ufruits.txt�v�t�@�C�����甲���o���܂��B
$ cat fruits.txt 1001,unshu-mikan,wakayama 1002,apple,aomori 1003,japanese pear,chiba 1004,grape,yamanashi 1005,peach,yamanashi $ grep -e "aomori" -e "yamanashi" fruits.txt 1002,apple,aomori 1004,grape,yamanashi 1005,peach,yamanashi
�@���̂悤�Ȏw�������邱�Ƃ��\�ł��B
$ grep "aomori\|yamanashi" fruits.txt
�@�u|�i�p�C�v�j�v�̑O�Ɂu\�i�o�b�N�X���b�V���j�v�������Ȃ���OR�����ɂȂ��Ȃ��̂Œ��ӂ��Ă��������B
�@grep�R�}���h�ŁAAND�������w�肷���ꍇ�́A�V�F���X�N���v�g�̃p�C�v�@�\���g���āA2��grep�R�}���h�����т��܂��B
$ grep "yamanashi" fruits.txt | grep "peach" 1005,peach,yamanashi
�@���L�̗������s�����ƁA�t�@�C�����̕������uyamanashi�v�ƕ������upeach�v�������܂܂����s���擾�ł��܂��B
�@find�R�}���h�́A�f�B���N�g���c���[�̒������t�@�C�����T���o�����Ƃ��ł����A���ϋ��͂ŕ��G�ȃR�}���h�ł��B
$ find �m�p�X�n[���i�I�v�V�����A���ʎ��A�A�N�V�����j]
�@�u���v�́A�I�v�V�����A���ʎ������уA�N�V�����̑g�ݍ��킹�����Ȃ��܂��B
����1 �@find�R�}���h�́AOS�ɂ����Ďg�p�\�ȃI�v�V�������قȂ��܂��B�@�Ⴆ�ASolaris�Ȃǂ�OS�ł́A�ȍ~�ŏЉ�����̑������g�p�ł��܂��� �@�i�Q�l�y�[�W�F�ufind�vSunOS���t�@�����X�}�j���A��1�j
�@find�R�}���h�̑��\�I�ȃI�v�V�������\�ɂ܂Ƃ߂Ă����܂��B
find�R�}���h�̑��\�I�ȃI�v�V����
�I�v�V���� |
---|
-follow |
-maxdepth n |
-mindepth n |
���j���[�g�f�B���N�g���u/�v�����A2 �K�w�ڂ܂ł�����ĕ\������
$ find / -maxdepth 2 / /home /home/yasuda (��) /usr /usr/local (��)
�@0�A1�K�w�ڂ��\�������邱�Ƃɒ��ӂ��ĉ������B
�@find�R�}���h�̑��\�I�Ȕ��ʎ����\�ɂ܂Ƃ߂Ă����܂��B
���ʎ� |
---|
-name [pattern] |
-path [pattern] |
-regex [pattern] |
-type [filetype] |
�@ |
�@ |
�@ |
-group [group] |
-user [user] |
�@���̂悤�ɁA�����J�n�f�B���N�g������w�肵�Č���邱�Ƃ��ł��܂��B
���j�u/usr/local/bin�v�u/usr/bin�v�u/bin�v�ȉ��̑S�t�@�C���������
$ find /usr/local/bin /usr/bin /bin -type f /usr/local/bin/perldoc /usr/local/bin/perlivp (��)
���ʎ� |
---|
-atime |
�@ |
�@ |
-mtime |
�@ |
�@ |
-mmin |
�@ |
�@ |
-newer [file name] |
���j�t�@�C���̍ŏI�X�V����3�������O�̃t�@�C���������
$ date Fri Nov 21 13:48:19 JST 2008 $ ls -l total 0 -rw-r--r-- 1 root root 0 Nov 20 13:30 test1.txt -rw-r--r-- 1 root root 0 Nov 19 13:30 test2.txt -rw-r--r-- 1 root root 0 Nov 18 13:30 test3.txt $ find . -mtime +3 ./test3.txt
���ʎ� |
---|
-empty |
-size n[c/k/b] |
�@ |
�@ |
�@ |
���ʎ� |
---|
-perm mode |
-perm -mode |
-perm +mode |
�@���̗��ł́A�J�����g�f�B���N�g���ȉ��ɂ����A�A�N�Z�X������644�i-rw-r--r--�j�̃t�@�C���������E�\�����܂��B
���j�t�@�C���̃A�N�Z�X����(�p�[�~�b�V����)�Ńt�@�C���������
$ find . -perm 644 ./.cshrc ./.login ./.login_conf (��)
�@���ʎ��͎��̂悤�ȉ��Z�q�ŏ������lj��ł��܂��B
���Z�q |
---|
\( ���ʎ� \) |
! ���ʎ� |
���ʎ�1 -a ���ʎ�2 |
���ʎ�1 -o ���ʎ�2 |
�@�A�N�V�����͎��̂��̂��w���\�ł��B
�A�N�V���� |
---|
-fprint �t�@�C���� |
-exec �R�}���h '{}' \; |
-exec �R�}���h '{}' + |
-ok �R�}���h \; |
�@����Č��������S�t�@�C�������x�ɏ����������ꍇ�Afind�R�}���h�̃A�N�V������p���Ď��̂悤�Ɏw���ł��܂��B
$ find . -type f -exec �R�}���h '{}' \;
�@�u-exec�v�A�N�V�����ɂ����A����ʂɑ��āu�R�}���h�v�����s���܂��B���̂Ƃ��u{}�v��find�R�}���h�̎��s���ʁA�܂��t�@�C���̃p�X�ɒu�����������܂��B
�@���������L�̗��́A�t�@�C�������u�R�}���h�v�����s�������̂Ŏ��Ԃ��������܂��B���̂��߁A���ʓI�ɂ�xargs�R�}���h���p���āA���̂悤�Ɏw�肵�܂��iSolaris�ɂ͑Ή����Ă��܂����j�B
$ find . -type f -print0 | xargs -0 �R�}���h
�@xargs�R�}���h�́A�W�����͂����������ǂݍ��݁A�w���́u�R�}���h�v�����s���܂��B���L�̗��ł́Afind�R�}���h��p���Č��������S�t�@�C���̃p�X���A���x�Ɂu�R�}���h�v�֓n���Ă��܂��B
�@�Ȃ��A������ꕶ�����܂ރt�@�C��������������邽�߁Afind�R�}���h�ɂ͕K���u-print0�v�I�v�V�������t���uxargs -0�v�Ŏ�����悤�ɂ��܂��傤�B�u-0�v�I�v�V�����́u--null�v�ł��\���܂����iFreeBSD�ł́u-0�v�I�v�V�����̂ݗ��p�\�j�B
�@�����ɂ����Afind�R�}���h�͋�Ɖ��s�ł͂Ȃ��k�������i\0�j�������Ƃ��āA����ʂ��o�͂��܂��B���l��xargs�R�}���h���A�������k�������ŋ������Ă������̂Ƃ��ď������s���܂��B
����2 �@find�R�}���h��-exec�A�N�V�����́A�V�F�����N�����܂����B�V�F���R�}���h���g�������ꍇ�́A���̂悤�Ɏw�肵�܂��B $ find �c -exec sh -c '�V�F���R�}���h������' \;
����3 �@xargs�R�}���h�ň��x�ɓn���钷���̐�����OS�ɂ����ĈقȂ��܂��B �@�����l�́uARG_MAX�v�Ƃ����}�N���萔�Œ��`�����Ă��܂��B �@Debian �̏ꍇ�́A���̃R�}���h�Ŏ����̎g���Ă���OS��ARG_MAX�� �@���ׂ邱�Ƃ��ł��܂��B Debian �̏ꍇ��ARG_MAX�������@ $ getconf ARG_MAX 131072
�@�ŋ߂�find�R�}���h�iGNU find��4.2.12�ȍ~�j�ł́A���������t�@�C�������x�ɏ������邽�߂́u-exec �R�}���h '{}' +�v�I�v�V���������݂��܂��iFreeBSD�ASolaris���Ή��j�B
$ find . -type f -exec �R�}���h '{}' +
�@�u+�v���w�肵���ꍇ�A�u{}�v���A����Č��������S�t�@�C�����̃p�X�ɒu�����������܂��B
�@xargs�R�}���h���g���Ȃ��ꍇ�́A�V�F���̐����\�����g���Ď��̂悤�Ɏw���ł��܂��B
$ find . -type f -print0 | while read -r -d '' file; do �R�}���h "$file"; done
�@�t�@�C�����Ɂu\�i�o�b�N�X���b�V���j�v���܂܂��Ă����ꍇ�ɔ�Aread�Ɂu-r�v�I�v�V�������t���Ă��܂��B�������A���̕��@�����������t�@�C�������u�R�}���h�v�����s�����̂ŁA���x�͒x���Ȃ��܂��B
���j���L�̂��ꂼ���̕��@�ŁA����Č��������t�@�C���ɑ�ls�R�}���h���p���Ĉꗗ�\��
$ ls test1.txt test2.txt test3.txt $ find . -type f -exec ls '{}' \; ./test1.txt ./test2.txt ./test3.txt $ find . -type f -print0 | xargs -0 ls ./test1.txt ./test2.txt ./test3.txt $ find . -type f -exec ls '{}' + ./test1.txt ./test2.txt ./test3.txt $ find . -type f -print0 | while read -r -d '' file; do ls "$file"; done ./test1.txt ./test2.txt ./test3.txt
�@���̂悤�ɃR�}���h�̑g�ݍ��킹�ɂ����āA�u�t�@�C�����̃O���[�v�����x��ls�R�}���h�Ŏ��s�v���u�t�@�C������ls�R�}���h�����s�v���邩���قȂ��A�������x���ς����Ă��܂��B
�@�Ō��ɁAfind�R�}���h��p�����������̗����Љ�Ă����܂��B�Ȃ��A�����ɏЉ���������ȊO�ɂ��A�l�X�ȏ������������܂��B�Ɩ��ɕ����ĉ��p���Ȃ��痘�p���Ă��������B
�@Emacs��p���Ă����ƁA�e�L�X�g���ۑ������ۂɁu�t�@�C����~�v�A�t�@�C�����ҏW�����ۂɁu#�t�@�C����#�v�Ƃ����o�b�N�A�b�v�t�@�C�����쐬�����܂��B�܂��AUnix�ELinux�v���Z�X���ُ��I�������Ɓucore�v�t�@�C�������������܂��B�������̃t�@�C�������x�ɍ폜�������ꍇ�ɂ́A���̂悤�Ɏw���ł��܂��B
$ find . \( -name core -o -name '#*' -o -name '*~' \) -exec rm '{}' +
�@�u\(�v�Ɓu�R�}���h�v�A�u�R�}���h�v�Ɓu\)�v�̊Ԃɂ̓X�y�[�X������K�v�������܂��B
�@xargs�R�}���h��p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find . \( -name core -o -name '#*' -o -name '*~' \) -print0 | xargs -0 rm
�@find�R�}���h�̔��ʎ��u-o�v�́A�u-or�v�ł��\���܂����B
�@�Ȃ��Afind�R�}���h�́u-delete�v�A�N�V���������p�ł����ꍇ�́A���̕��@���ł������ł��B
$ find . \( -name core -o -name '#*' -o -name '*~' \) -delete
$ find . -type f -user $(whoami) -exec rm '{}' +
�@xargs�R�}���h��p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find . -type f -user $(whoami) -print0 | xargs -0 rm
�@whoami�R�}���h�́A���[�U�����\�����܂��B
�@����Č��������S�t�@�C�����u/var/tmp/�v�ȉ��Ɉړ����܂��B
$ find . -type f -print0 | xargs -0 mv -t /var/tmp/
�@mv�R�}���h�́u-t�v�܂��́u--target-directory�v�I�v�V�����ŁA�ړ����f�B���N�g�����w���ł��܂��B�Ȃ��A���̗��ł̓f�B���N�g���\�����ێ������A�t�@�C���݈̂ړ����܂��B�����̃t�@�C�������݂����Ə㏑���������ȂNJ��Ғʂ��ɓ����Ȃ����߁A���ӂ��K�v�ł��B
����4 �@xargs�R�}���h�Ɂu-i�v�iFreeBSD�ł́u-I�v�j�I�v�V�����������ƁA�p�C�v�œn���ꂽ���ʂ��u{}�v�œW�J�ł��܂��B���̂��߁A���̎w�����@�ł����삵�܂��B $ find . -type f -print0 | xargs -0 -i mv '{}' /var/tmp/ �@FreeBSD�̏ꍇ�A�f�t�H���g�Łu{}�v�œW�J�ł��Ȃ����߁A���̂悤�Ɏw�肵�܂��B $ find . -type f -print0 | xargs -0 -I % mv % /var/tmp/ �@�u-I�v�I�v�V�����̌��̕����i���ł́u%�v�j���Afind�R�}���h�Ō��������t�@�C�����ɒu�����Ă��܂��B �@���������̕��@�́A1�t�@�C���Â�mv�R�}���h�����s���邽�߁A�������x���Ȃ��܂��B
����5 �@FreeBSD�ł́Axargs�R�}���h�́u-J�v�I�v�V������p�����ƁA�u-I�v�I�v�V�������荂���ɏ����ł��܂��B $ find . -type f -print0 | xargs -0 -J % mv % /var/tmp/ �@���̗��ł́A����Č��������t�@�C�����̃O���[�v���u%�v�ɒu��������mv�R�}���h�����s���Ă��܂��B
�@����Č��������S�t�@�C�����A�f�B���N�g���\�����ێ������܂܁u/var/tmp/�v�ȉ��ɃR�s�[���܂��B�����́A�t�@�C���P�ʂŃo�b�N�A�b�v�������ꍇ�ɁA���ɗ����܂��B�t�@�C���̃o�b�N�A�b�v�ŗ��p����cpio�R�}���h��p�����Ǝ��̂悤�Ɏw���ł��܂��B
$ find . -type f -print0 | cpio -pd0 /var/tmp/
�@�u-p�v�I�v�V�����́A�t�@�C�����ʂ̃f�B���N�g���ɃR�s�[���܂��B�u-d�v�I�v�V�����́A�K�v�ɉ����ăf�B���N�g�����쐬���܂��B�Ȃ��Acpio�R�}���h�́u-0�v�I�v�V������GNU��cpio�R�}���h�ȊO�ł͎g���܂����B
�@�u~/public_html�v�ȉ��ŁA�g���q���u.gif�v���T�C�Y��100K�o�C�g�ȏ��̃t�@�C�����T���A���ʂ��uresult.txt�v�t�@�C���ɏ������݂܂��B
$ find ~/public_html \( -name "*.gif" -a -size +100k \) -fprint result.txt
�@���ʃ��[�U�[�ŁA���[�g�f�B���N�g�����u/etc�v�f�B���N�g���Ȃǂ��ΏۂɌ�����ƁuPermission denied�v�Ƃ����x�����b�Z�[�W�����ʂɕ\�������܂��B����ʂ̈ꗗ���x�����b�Z�[�W�ɖ��܂��Ă��܂��A����ʂ̊m�F�����ςȏꍇ�ɂ́A���̕��@�ŕ\�������Ȃ��Ȃ��܂��B
$ find / -name user �� �uuser�v������ find: /usr/src: Permission denied �� �x�����b�Z�[�W find: /usr/share/skel/MailBox: Permission denied �� �x�����b�Z�[�W find: /usr/obj: Permission denied �� �x�����b�Z�[�W (��) /home/user $ find / -name user 2>/dev/null /home/user
�@�u2>/dev/null�v���w�肵�āA�x�����b�Z�[�W���k���f�o�C�X�֏o�͂��Ă��܂��B
�@�����̕�������������ۂɕs�v�ȃf�B���N�g���������Ώۂ����O�����@�ł��B
grep -rn 'hoge' ./ --exclude-dir=.git
�Ȃ��A ag (The Silver Searcher) ���g���Ƃ��荂���ɂ��̗v��������܂��B
�@������find�R�}���h��grep�R�}���h�A������xargs�R�}���h��p�����u�t�@�C���E�t�@�C�����e�̌����v�Ɋւ����e�N�j�b�N���Љ�܂����B�����Љ���ق��ɂ��Aawk��perl��p���邱�ƂŁA�Ȍ��Ȏw���⍂���ȏ������\�ȏꍇ�������܂��B
�@�����ȍ~���A�e�[�}���Ƃ�UNIX�e�N�j�b�N���Љ�Ă����\���ł��B
スポンサードリンク