�Ɩ��Ŋy���邽�߂�UNIX�e�N�j�b�N�W �t�@�C���E�f�B���N�g�����̈ꊇ�u���^�ꊇ�쐬
���̋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
�@�����́A��0���A��1���ŏЉ��find�^xargs�R�}���h�A�V�F���̕ϐ��W�J�A�����\����p�����u�t�@�C���E�f�B���N�g�����̈ꊇ�u���v�Ɋւ����e�N�j�b�N���Љ�܂��B
�@�܂��A�u�t�@�C�����f�B���N�g���̈ꊇ�쐬���@�v�u�V���{���b�N�����N�̍쐬���@�v�Ɋւ����e�N�j�b�N���Љ�܂��B�u�t�@�C�����̒u���v�e�N�j�b�N���������ۂ́A�R�}���h�m�F���\�z�ɂ����p���������B
スポンサードリンク
�@�Ȃ��ׂ�UNIX�nOS���ʂɓ��Ă͂܂��悤���������̂ŁA���ɋL�q���Ȃ��ꍇ�́AMac OS X�ARed Hat Linux���ł����삵�܂��iSolaris �ł͓��삵�܂����j�B�V�F���Ɋւ��ẮAbash�iBourne-Again Shell 2������3�j���z�肵�Ă��܂��B
�@�T�C�Y�̑傫���Ȃ������O�t�@�C�������ɂ������ꍇ�ȂǁA���i�T�C�Y��0�j�̃t�@�C�������肽�����Ƃ������Ǝv���܂��B
�@���t�@�C�����쐬�����ɂ́A����3�̑��\�I�Ȏw�����@�������܂��B
$ :> test1.txt
$ echo -n > test2.txt
$ cp /dev/null test3.txt
�@�i1�j�ł́A�g�ݍ��݃R�}���h�́u:�v�i���������I���R�[�h0���Ԃ��j�ƃ��_�C���N�g���g�ݍ��킹�Ă��܂��B
�@�i2�j�̂悤�ɁAecho�R�}���h�ƃ��_�C���N�g���g�ݍ��킹�����@�ł��쐬�ł��܂��B���̍ہu-n�v�I�v�V�������t���Ȃ��ƁA���s�R�[�h���܂܂ꂽ1byte�̃t�@�C�����쐬�����Ă��܂��܂��B
�@�i3�j�́u/dev/null�v�̓k���f�o�C�X�ƌĂ��A�ǂݍ���ꍇ�ɂ͏��ɋ��t�@�C���ƂȂ��܂��B
�@�܂��A�K���Ȗ��O�̋��̃t�@�C�����쐬�������ꍇ�́Amktemp�R�}���h���g�p�ł��܂��B
$ mktemp hoge.XXXXXX hoge.jv2984
�@�t�@�C�����ɁuXXXXXX�v�̂悤�ɑ啶���́uX�v��6�A�����Ďw�肷���ƁA�uX�v�̉ӏ��ɔC�ӂ̕�����}�����ꂽ�t�@�C�����ɂȂ��܂��B�Ȃ��u-d�v�I�v�V�������t�����ƁA�f�B���N�g�����쐬�ł��܂��B
����1 ���̃t�@�C���������ꍇ�ɂ́A�悭touch�R�}���h���g�����܂��B $ touch test.txt �������Atouch�R�}���h�͎w�肵�����O�̃t�@�C���i���̏ꍇ���Ɓutest.txt�v�j�����ɑ��݂����ꍇ�A�t�@�C�����e�͕ύX���ꂸ�X�V���t�������V�����Ȃ��܂��B
�@�t�@�C������̃f�B���N�g���ɕ��������ꍇ�ȂǁA�f�B���N�g�������x�ɕ����쐬���������Ƃ������Ǝv���܂��B�쐬�������f�B���N�g��������ʁu{�v�u}�v�ň͂��A�u,�v�����̎w�������邱�Ƃō쐬�ł��܂��B
�@���̗��ł́A�uhome�v�ulib�v�ubin�v�Ƃ������O�̃f�B���N�g�������x�ɍ쐬���Ă��܂��B
$ ls �� �f�B���N�g���͋� $ mkdir ./{home,bin,lib} $ ls bin/ home/ lib/
�@�f�B���N�g�����ɑ��ĕ����I�ɒ����ʂ�p�����A���̂悤�Ȏw�����\�ł��B
$ mkdir dir{1,2,3} $ ls dir1/ dir2/ dir3/
�@�܂��A���x�ɑ��K�w�̃f�B���N�g�����쐬�����ꍇ�ɂ́Amkdir�R�}���h�Ɂu-p�v�I�v�V�������t���܂��B
$ mkdir -p dir1/dir2/dir3 $ find * dir1 dir1/dir2 dir1/dir2/dir3
�@mkdir�R�}���h�́u-p�v�I�v�V�����ƒ����ʂ��g�ݍ��킹���ƁA���̂悤�ȃf�B���N�g���\�������x�ɍ쐬�\�ł��B
$ mkdir -p ./{lib,src,doc/{html,pdf,txt}} $ find * doc doc/html doc/pdf doc/txt lib src
�@���L�̗��́A�ulib�v�usrc�v�udoc�v�Ƃ������O�̃f�B���N�g�����쐬���A�����Ɂudoc�v�f�B���N�g���ȉ��ɁA�uhtml�v�updf�v�utxt�v�Ƃ������O�̃f�B���N�g�����쐬���Ă��܂��B
�@���葽���̃f�B���N�g�����쐬�����K�v�������ꍇ�́A�V�F���̐����\����p���Ď��̂悤�Ɏw���ł��܂��i�t�@�C�����쐬�������ꍇ�́Amkdir�R�}���h��touch�R�}���h�Ȃǂɒu�������Ă��������j�B
$ for ((i=1; i<=5; i++)); { mkdir "test$i"; } $ ls test1/ test2/ test3/ test4/ test5/
�@���������L�̕��@�́A���[�v�̉����mkdir�R�}���h���Ăяo�����邽�߁A�������x���x���Ȃ��܂��B���葬���f�B���N�g�����쐬�������ꍇ�́Axargs�R�}���h��p���Ď��̂悤�Ɏw�肷�邱�Ƃ��\�ł��B
$ for ((i=1; i<=5; i++)) { echo "test$i "; } | xargs mkdir $ ls test1/ test2/ test3/ test4/ test5/
�@�u"test$i �i��j"�v�ƂȂ��Ă��邱�Ƃɒ��ӂ��Ă��������B���炩����echo�R�}���h�Ńf�B���N�g�������o�͂��Ă����Amkdir�R�}���h�����x�������s�����邱�Ƃŏ������x��߂Ă��܂��Bxargs�R�}���h�Ɋւ��Ă͑�1�����Q�l�ɂ��Ă��������B
�@�Ȃ�bash 3.0�ȍ~�ł����A���̂悤�ɒ����ʂ�p���邱�ƂŁA�����ɍ����Ƀf�B���N�g�����쐬�ł��܂��B
$ mkdir test{1..5}
�@bash 3.0�ȍ~�ł�{�J�n�i����or�p���j..�I���i����or�p���j}�Ǝw�肷���ƁA�A���I�ȕ\���Ƃ��Ĉ����Ă����܂��B���̂��߁A�A�ԃt�@�C�������������܂��B
�@�t�@�C�����E�f�B���N�g�����̒�������ĊǗ��������ꍇ�ɂ́A�[���p�f�B���O�i�[�����߁j���s���̂��֗��ł��B
�@�udir001�v�udir010�v�udir100�v�̂悤�Ȗ��O�̃f�B���N�g�������肽���ꍇ�́Aprintf�R�}���h��p���āA���̂悤�Ɏw���ł��܂��i�t�@�C�����쐬�������ꍇ�́Amkdir�R�}���h��touch�R�}���h�Ȃǂɒu�������Ă��������j�B
$ for ((i=1; i<=5; i++)) { printf "test%03d " $i; } | xargs mkdir
�@bash 3.0�ȍ~�ł́A���̎w�����\�ł��B
$ for i in {1..5}; { printf "test%03d " $i; } | xargs mkdir $ ls dir001/ dir002/ dir003/ dir004/ dir005/
�@�u"test%03d �i��j"�v�ƂȂ��Ă��邱�Ƃɒ��ӂ��Ă��������Bprintf�R�}���h�́AC������printf���̂悤�ɁA�w���̃t�H�[�}�b�g�ŕ��������o�͂����R�}���h�ł��B�u%03d�v�Ǝw�肷���A3���Ń[���p�f�B���O�����܂��B
�V���{���b�N�����N�̃t�@�C�����ꊇ�ō쐬����
�@�V���{���b�N�����N�̃t�@�C�������u�������Ă��A�����N���̃t�@�C�����͕ύX�����܂����B�V���{���b�N�����N�̃t�@�C�����쐬�����ɂ́Aln�R�}���h�Ɓu-s�v�I�v�V������p�����̂����ʓI�ł��B
$ ln -s [�����N���t�@�C��] [�����N�t�@�C��]
�@�������A�V���{���b�N�����N�̃t�@�C�����ꊇ�ō쐬�����ɂ́Acp�R�}���h���֗��ł��iFreeBSD�́Acp�R�}���h�͖��Ή��j�B
$ cp -rs [�����N���t�@�C��] [�����N�t�@�C��]
�@�u-r�v�I�v�V�����Ńf�B���N�g�����ċA�I�ɃR�s�[���āA�u-s�v�I�v�V�����ŃV���{���b�N�����N�t�@�C�����쐬���Ă��܂��B
�@�Ⴆ�� �z�[���f�B���N�g���ɑ��݂����utmp�v�f�B���N�g���ցA�utmp2�v�Ƃ������O�ŃV���{���b�N�����N�������ɂ́A�`���_�W�J��p�����Ύ��̂悤�Ɏw���ł��܂��B
$ cp -rs ~/tmp ~/tmp2
�@�����ł́A�t�@�C�������f�B���N�g�����̈ꊇ�u���̃e�N�j�b�N���Љ�܂��B�Ȃ��AUNIX�nOS�ł́A�u/�v(�X���b�V��)�Ɓu\0�v(�k������)�̕����̓t�@�C�������f�B���N�g�����Ƃ��Ďg�p�ł��܂����B
����2 ���ӏ����̂Ȃ��R�}���h���Ɋւ��ẮA�u\n�v�i���s�j���u\�v�i�o�b�N�X���b�V���j�A�u"�v�i�_�u���N�H�[�e�[�V�����j�Ȃǂ��܂܂��Ă����t�@�C�����E�f�B���N�g�������u���ł��邱�Ƃ��m�F���Ă��܂��B
����3 Windows NT�n(2000, XP, Vista)��OS�ł́AUnicode�������R�[�h�Ƃ��ė��p���Ă��邽�߁A���e�������Ȃǂ��t�@�C�����E�f�B���N�g�����Ɏg�p�ł��܂��B �������ACygwin �ł�CP932(��SJIS)�ň����Ȃ�������t�@�C�����E�f�B���N�g�����Ɋ܂܂����Ɛ����������ł��܂����B
�@���L�̂悤�Ɋg���q�������Ȃ��t�@�C�����������݂��Ă����Ƃ��܂��B
$ ls test1 test2 test3 test4 test5
�@���̃t�@�C���ɁA���ׂāu.bak�v�̊g���q�������ɂ́A�V�F���̐����\����p���A���̂悤�Ɏw���ł��܂��B
$ for file in *; { mv "$file" "$file.bak"; }
�@xargs�R�}���h��p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find * -maxdepth 0 -print0 | xargs -0 -I% mv % %.bak
�@find�R�}���h�̃A�N�V������p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find * -maxdepth 0 -exec mv '{}' '{}.bak' \;
�@�����ɁADebian�ł�perl�ɂ����������ꂽrename�R�}���h���p�ӂ����Ă��܂��B��1������perl���s�������p�ł��邽�߁A�ėp�I�Ȏw�肪�ł��܂��i���s�������܂܂����t�@�C�����͒u�������܂����j�B
$ rename 's/$/.bak/' *
�@�T�u�f�B���N�g���ɓn���t�@�C���������g���q�u.bak�v�����菜���ɂ́Afind�R�}���h�ƃV�F���̐����\����p���āA���̂悤�Ɏw���ł��܂��B
$ find . -type f -name "*.bak" -print0 | while read -r -d '' file; do mv "$file" "${file%%.bak}"; done
�@���L�̗��ł́A�V�F���̕ϐ��W�J�u${�p�����[�^%%�p�^�[��}�v���p���āA�t�@�C�����̌��������u.bak�v�Ƀ}�b�`���������������Ă��܂��B�V�F���̕ϐ��W�J�Ɋւ��ẮA��0�����Q�l�ɂ��Ă��������B
�@�����āA�g�ݍ��݃R�}���hread�ƃV�F���̕ϐ��W�J��p���Ă��܂��B
�@�u-r�v�I�v�V�����́A�t�@�C�����Ɂu\�v�i�o�b�N�X���b�V���j���܂܂��Ă����ꍇ���l�����ĕt���Ă��܂��B�܂��u-d�v�I�v�V�����Łu\0�v�i�k�������j�����蕶���ɐݒ肵�Ă��܂��i�u-d $'\0'�v�Ɠ��l�j�Bfind�R�}���h�̃I�v�V�����Ɋւ��Ă͑�1�����Q�Ƃ��Ă��������B
�@xargs�R�}���h��p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find . -type f -name "*.bak" -print0 | perl -pe 's/\.bak\0/\0/g' | xargs -0 -I% mv %.bak %
�@perl��p���āu.bak\0�v�������u\0�v�i�k�������j�ɒu�����Ă��܂��B�܂��A�u-p�v�I�v�V�����͌J���Ԃ������Əo�͂��s���A�u-e�v�I�v�V�����ŗ^�����ꂽ�����������s���܂��B
����4 �uperl -pe�v�̑������Ɂused -e�v��p�����ƁA���̂悤�Ɏw���ł��܂��iFreeBSD��sed�R�}���h�ɂ͑Ή����Ă��܂����j�B $ find . -type f -name "*.bak" -print0 | sed -e 's/\.bak\x00/\x00/g' | xargs -0 -I% mv %.bak % �u\x00�v�́u\0�v�i�k�������j��16�i���\�L�ł��A8�i���\�L�́u\o000�v�ł��\���܂����B sed�R�}���h�Aperl�̏ڍׂȎg�����Ɋւ��ẮA�����ȍ~�ɐ������܂��B
�@�Ō��ɁA�R�}���h���V�F���̐����\����p�����������̗����Љ�Ă����܂��B�Ɩ��ɍ��킹�ĉ��p���Ȃ����g���Ă��������B
�@�܂��A�����ăt�@�C�����㏑�������̂��h���ɂ́Amv�R�}���h�^cp�R�}���h�Ɂu-i�v�u-b�v�I�v�V�������t���Ď��s���邩�A�u�t�@�C���̈ꊇ�쐬�v�u�V���{���b�N�����N�̍쐬�v�ŏЉ���e�N�j�b�N��p���Ď��O�Ɍ��؊����\�z���A�����m�F���s���Ă��������B
$ find . -type f -print0 | while read -r -d '' file; do mv "$file" "$file.bak"; done
�@xargs�R�}���h��p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find . -type f -print0 | xargs -0 -I% mv % %.bak
�@find�R�}���h�̃A�N�V������p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find . -type f -exec mv '{}' '{}.bak' \;
$ find * -maxdepth 0 -name "*.bak" -print0 | while read -r -d '' file; do mv "$file" "${file%%.bak}"; done
�@�V�F���̕ϐ��W�J�u${�p�����[�^%%�p�^�[��}�v���p���āA�g���q���u.bak�v�����菜���Ă��܂��B
�@xargs�R�}���h��p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find * -maxdepth 0 -name "*.bak" -print0 | perl -pe 's/\.bak\0/\0/g' | xargs -0 -I% mv %.bak %
$ for file in *.text; { mv "$file" "${file%%.text}.txt"; }
�@xargs�R�}���h��p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find * -maxdepth 0 -print0 | perl -pe 's/\.text\0/\0/g' | xargs -0 -I% mv %.text %.txt
�@Fedora��Cygwin�Ȃ�rename�R�}���h���g�������ł́A���荂���Ƀt�@�C�����̒u�����\�ł��i���s�������܂܂����t�@�C�����͒u�������܂����j�B
$ rename .text .txt *.text
����5 rename�R�}���h���g���ƁA�utest.text.text�v�̂悤�ȓ��d�g���q�����t�@�C�����̏ꍇ�A�utest.txt.text�v�̂悤�ɍŏ��̊g���q�����u�������Ă��܂��܂��B $ ls test.text.text $ rename .text .txt *.text $ ls test.txt.text
�T�u�f�B���N�g���ɓn�邷�ׂẴt�@�C���̊g���q�u.text�v���u.txt�v�ɒu��������
$ find . -type f -name "*.text" -print0 | while read -r -d '' file; do mv "$file" "${file%%.text}.txt"; done
�@�V�F���̕ϐ��W�J�u${�p�����[�^%%�p�^�[��}�v���p���āA�g���q���u.text�v�����菜���Ă��܂��B
�@xargs�R�}���h��p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find . -type f -name "*.text" -print0 | perl -pe 's/\.text\0/\0/g' | xargs -0 -I% mv %.text %.txt
$ ls test A.txt test".txt test.txt.bak $ find . -type f -print0 | while read -r -d '' file; do mv "$file" "${file%.*}.txt"; done $ ls test A.txt test".txt test.text.txt
�@�V�F���̕ϐ��W�J�u${�p�����[�^%�p�^�[��}�v���p���āA���x�g���q�����菜���Ă����A�g���q���t�������Ă��܂��B�u%%�v�ł͂Ȃ��u%�v�Ƃ��邱�ƂŁA���d�g���q�̃t�@�C���ł��A�Ō��̊g���q�݂̂��u�����Ă����܂��B
$ find * -type f ! -name "*.*" -print0 | while read -r -d '' file; do mv "$file" "$file.txt"; done
�@xargs�R�}���h��p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find * -type f ! -name "*.*" -print0 | xargs -0 -I% mv % %.txt
�@find�R�}���h�̃A�N�V������p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find . -type f ! -name "*.*" -exec mv '{}' '{}.bak' \;
�T�u�f�B���N�g���ɓn�邷�ׂẴf�B���N�g���E�t�@�C�����Ɋg���q�u.bak�v���t����
$ find * -print0 | sort -rz | while read -r -d '' file; do mv "$file" "$file.bak"; done
�@�ŏ��Ƀf�B���N�g�������u���������ƁA���̃f�B���N�g�����̃t�@�C�����u�����������s�����܂����B���̂��߁A�f�B���N�g�����̒u���͍Ō��ɍs���悤�Asort�R�}���h�́u-r�v�I�v�V�����Ō���ʂ��t���ɕ��ׂĂ��܂��B
�@sort�R�}���h�́u-z�v�I�v�V�����́A�u\0�v�i�k�������j�����蕶���Ƃ��邽�߂ɕt���Ă��܂��B�ufind -print0�v���uxargs -0�v�ȂǂƑg�ݍ��킹�Ďg���ꍇ�ɕK�v�ȃI�v�V�����ł��B
�@xargs�R�}���h��p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find * -print0 | sort -rz | xargs -0 -I% mv % %.bak
$ ls test A.txt test".txt test.text.bak $ for file in *; { mv "$file" "$(date +%F)-$file"; } $ ls 2009-02-09-test A.txt 2009-02-09-test".txt 2009-02-09-test.text.bak
�@date�R�}���h�́u+%F�v�I�v�V�����ɂ����A�uyyyy-mm-dd�v�`���̓������o�͂��Ă��܂��B
�@xargs�R�}���h��p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find * -maxdepth 0 -type f -print0 | xargs -0 -I% mv % "$(date +%F)"-%
�@find�R�}���h�̃A�N�V������p�����ꍇ�́A���̂悤�Ɏw���ł��܂��B
$ find * -maxdepth 0 -type f -exec mv '{}' "$(date +%F)"-'{}' \;
$ ls test A.txt test".txt test.text.bak $ find . -type f -print0 | while read -r -d '' file; do mv "$file" "${file%.*}-$(date +%F).${file##*.}"; done $ ls test A-2009-02-09.txt test"-2009-02-09.txt test.text-2009-02-09.bak
�@�g���q�����菜���ē��t���t�����A�Ō��Ɋg���q�������Ă��܂��B�����ł́A�V�F���̕ϐ��W�J�u${�p�����[�^##�p�^�[��}�v���p���āA�t�@�C�����̑O�������u*.�v�Ƀ}�b�`���镔���������Ă��܂��B
�@�Ȃ��A�R�}���h�������ꍇ�́A���̂悤�ɉ��s�����w�����ł��܂��B
$ find . -type f -print0 | while read -r -d '' file; > do mv "$file" "${file%.*}-$(date +%F).${file##*.}"; > done
�@���L�́u>�v�̓R�}���h���܂��������Ă��Ȃ��Ƃ��ɃV�F�����\������2���v�����v�g�ł��B
�@�����́u�t�@�C���E�f�B���N�g�����̈ꊇ�u���v���u�t�@�C�����V���{���b�N�����N�̈ꊇ�쐬�v�Ɋւ����e�N�j�b�N���Љ�܂����B
�@�����Љ���w�����@�ȊO�ɂ��A�R�}���h���V�F���̐����\����p���邱�ƂŁA���܂��܂Ȏw�肪�ł����Ǝv���܂��B�������A���ꕶ��������܂܂����t�@�C�����ł����������삷�邩���m�F���ċƖ��Ŏg���悤�ɂ��Ă��������B
�@�����ȍ~���A�e�[�}���ƂɃe�N�j�b�N�⏬�Z���Љ�Ă����\���ł��B
スポンサードリンク