ການນໍາໃຊ້ຄໍາສັ່ງ Linux ແລະ Unix: find

ຄໍາສັ່ງ Linux ແລະ Unix ຄົ້ນຫາ ການຄົ້ນຫາໄຟລ໌ໃນລະບົບລໍາດັບລະບົບ.

ຄໍາສັບສໍາລັບການ ຊອກຫາ ຄໍາສັ່ງ:

find [path] [expression]

ລາຍລະອຽດ

ຫນ້າຄູ່ມືນີ້ເອກະສານການ ຊອກຫາ ຂອງ GNU. ຄໍາສັ່ງ ຄົ້ນ ຫາຄົ້ນຫາຕົ້ນໄມ້ລະບົບທີ່ຖືກຮາກຢູ່ໃນແຕ່ລະຊື່ໄຟລ໌ໂດຍການປະເມີນຜົນການສະແດງອອກຈາກຊ້າຍຫາຂວາ, ອີງຕາມກົດລະບຽບຂອງຄວາມສໍາຄັນ (ເບິ່ງພາກສ່ວນຜູ້ດໍາເນີນງານຂ້າງລຸ່ມ), ຈົນກ່ວາຜົນໄດ້ຮັບເປັນທີ່ຮູ້ຈັກ; ໃນຄໍາສັບຕ່າງໆອື່ນໆ, ເບື້ອງຊ້າຍມືແມ່ນບໍ່ຖືກຕ້ອງ ແລະ ການດໍາເນີນງານ, ທີ່ແທ້ຈິງ ຫຼື , ໃນເວລາທີ່ ຊອກຫາ ຍ້າຍກັບຊື່ໄຟລ໌ຕໍ່ໄປ.

ການໂຕ້ຖຽງທໍາອິດທີ່ເລີ່ມຕົ້ນດ້ວຍ:

ຖືກນໍາໄປເປັນຈຸດເລີ່ມຕົ້ນຂອງການສະແດງອອກ; ການໂຕ້ຖຽງໃດກໍ່ຕາມກ່ອນທີ່ມັນຈະມີເສັ້ນທາງຄົ້ນຫາ, ແລະການໂຕ້ຖຽງໃດໆຫຼັງຈາກມັນເປັນສ່ວນທີ່ເຫຼືອຂອງການສະແດງອອກ. ຖ້າບໍ່ມີເສັ້ນທາງໃດກໍ່ຕາມ, ໄດເລກະທໍລີປະຈຸບັນຖືກນໍາໃຊ້. ຖ້າບໍ່ມີການສະແດງອອກ, ການສະແດງອອກ - ຈະຖືກນໍາໃຊ້.

ຄໍາສັ່ງ ຄົ້ນຫາຈະ ອອກຈາກສະຖານະ 0 ຖ້າໄຟທັງຫມົດຖືກປະຕິບັດແລ້ວ, ຫຼາຍກວ່າ 0 ຖ້າມີຂໍ້ຜິດພາດ.

ການສະແດງອອກ

ການສະແດງອອກແມ່ນມີຕົວເລືອກຕ່າງໆ (ເຊິ່ງຜົນກະທົບຕໍ່ການດໍາເນີນງານໂດຍທົ່ວໄປແທນທີ່ຈະເປັນການປະມວນຜົນຂອງໄຟລ໌ໃດຫນຶ່ງ, ແລະສະເຫມີກັບຄືນຈິງ), ການທົດສອບ (ເຊິ່ງສົ່ງຄືນມູນຄ່າທີ່ເປັນຄວາມຈິງຫຼືບໍ່ຖືກຕ້ອງ) ແລະການກະທໍາ (ເຊິ່ງມີຜົນຂ້າງຄຽງແລະສົ່ງຄືນຄວາມຈິງຫຼື ຄ່າທີ່ບໍ່ຖືກຕ້ອງ), ທັງຫມົດຖືກແຍກໂດຍຜູ້ປະຕິບັດງານ. ການສະແດງອອກ - ແລະ ຖືກຖືວ່າບ່ອນທີ່ຜູ້ປະຕິບັດການຖືກຍົກເລີກ. ຖ້າການສະແດງອອກປະກອບມີການກະທໍາອື່ນນອກເຫນືອຈາກ -prune , then -print ຈະຖືກປະຕິບັດໃນທຸກໄຟລ໌ທີ່ມີການສະແດງຜົນຈິງ.

ຕົວເລືອກ

ຕົວເລືອກທັງຫມົດສະເຫມີໄປຄືນຄວາມຈິງ. ພວກເຂົາສະເຫມີໃຊ້ຜົນກະທົບ, ແທນທີ່ຈະຖືກດໍາເນີນການເທົ່ານັ້ນເມື່ອສະຖານທີ່ຂອງພວກເຂົາໃນການສະແດງອອກມາເຖິງ. ເພາະສະນັ້ນ, ສໍາລັບຄວາມຊັດເຈນ, ມັນດີທີ່ສຸດທີ່ຈະເອົາໃຫ້ພວກມັນຢູ່ໃນຕອນເລີ່ມຕົ້ນຂອງການສະແດງອອກ.

-daystart ເວລາທີ່ວັດແທກ (ສໍາລັບ - ອາ ຫານ, ອາຫານ, -cmin, -ctime, -min, ແລະ -mtime ) ຈາກຕອນຕົ້ນຂອງມື້ນີ້ແທນທີ່ຈະມາຈາກ 24 ຊົ່ວໂມງກ່ອນຫນ້ານີ້.
-depth ປະມວນຜົນເນື້ອຫາຂອງແຕ່ລະໂຟນເດີກ່ອນທີ່ຈະຕົວຂອງມັນເອງ.
- ຕິດຕາມ Dereference symbolic links Implies -noleaf
-help or --help ພິມລາຍການສະຫຼຸບຂອງການນໍາໃຊ້ບັນທັດຄໍາສັ່ງຂອງການ ຊອກຫາ ແລະການທ່ອງທ່ຽວ.
-maxdepth [number] ຫຼຸດລົງຢູ່ໃນລະດັບຈໍານວນຫຼາຍຂອງລະດັບ (ຈໍານວນທີ່ບໍ່ແມ່ນທາງລົບ) ຂອງໄດເລກະທໍລີພາຍໃຕ້ການໂຕ້ຖຽງບັນທັດຄໍາສັ່ງ. ການສະແດງອອກ -maxdepth 0 ຫມາຍຄວາມວ່າພຽງແຕ່ນໍາໃຊ້ການທົດສອບແລະການປະຕິບັດຕໍ່ຄໍາສັ່ງຂອງຄໍາສັ່ງ.
-mindepth [number] ຢ່າໃຊ້ການທົດສອບຫຼືການປະຕິບັດໃດໆຢູ່ໃນລະດັບຫນ້ອຍກວ່າຈໍານວນ (ເປັນຕົວເລກທີ່ບໍ່ແມ່ນທາງລົບ). ການສະແດງອອກ -mindepth 1 ຫມາຍເຖິງຂະບວນການທັງຫມົດໄຟລ໌ຍົກເວັ້ນການໂຕ້ຖຽງບັນທັດຄໍາສັ່ງ.
-mount ຢ່າລົງລາຍຊື່ໃນລະບົບໄຟລ໌ອື່ນໆ. ຊື່ອື່ນສໍາລັບ -xdev , ສໍາລັບການເຂົ້າກັນໄດ້ກັບບາງສະບັບອື່ນໆຂອງການ ຄົ້ນຫາ .
-noleaf ບໍ່ເຫມາະສົມໂດຍການສົມມຸດວ່າໄດເລກະທໍລີມີ 2 ຈົດຫມາຍຍ່ອຍນ້ອຍກວ່າຈໍານວນການເຊື່ອມຕໍ່ທີ່ແຂງຂອງພວກເຂົາ. *
-version or -version ພິມຫມາຍເລກການ ຊອກຫາ ແລະອອກຈາກ.
-xdev ຢ່າລົງລາຍຊື່ໃນລະບົບໄຟລ໌ອື່ນໆ.

* ຕົວເລືອກນີ້ຈໍາເປັນໃນການຄົ້ນຫາລະບົບໄຟລ໌ທີ່ບໍ່ປະຕິບັດຕາມສົນທິສັນຍາລິ້ງລິ້ງ Unix ເຊັ່ນລະບົບໄຟລ໌ CD-ROM ຫຼືລະບົບ MS-DOS ຫຼືຈຸດສຸມໂຟນສະແດງຂອງ AFS. ແຕ່ລະລະບົບກ່ຽວກັບລະບົບໄຟລ໌ Unix ຕາມປົກກະຕິມີການເຊື່ອມໂຍງແຂງຢ່າງຫນ້ອຍ 2: ຊື່ແລະຊື່ຂອງມັນ . (ໄລຍະເວລາ) ເຂົ້າ. ນອກຈາກນີ້, ຍ່ອຍຍ່ອຍຂອງມັນ (ຖ້າມີ) ແຕ່ລະມີ .. ລາຍະການທີ່ກ່ຽວຂ້ອງກັບໄດເລກະທໍລີນັ້ນ.

ເມື່ອ ຄົ້ນຫາ ກໍາລັງກວດເບິ່ງໄດເລກະທໍລີ, ຫຼັງຈາກມັນມີຕໍາແຫນ່ງສອງຕໍາ່ນ້ອຍກວ່າຈໍານວນການເຊື່ອມຕໍ່ຂອງໄດເລກະທໍລີ, ມັນຮູ້ວ່າສ່ວນທີ່ເຫລືອໃນໄດເລກະທໍລີບໍ່ແມ່ນໂຟໂຕນ (ໄຟລ໌ ໃບ ໃນຕົ້ນໄມ້ຂອງໄດເລກະທໍລີ). ຖ້າຫາກວ່າມີພຽງຊື່ໄຟລ໌ທີ່ຕ້ອງການທີ່ຈະຕ້ອງໄດ້ກວດສອບ, ບໍ່ຈໍາເປັນຕ້ອງໄດ້ສະຖິຕິພວກເຂົາ; ນີ້ເຮັດໃຫ້ມີການເພີ່ມຂຶ້ນຢ່າງຫຼວງຫຼາຍໃນຄວາມໄວຄົ້ນຫາ.

ການທົດສອບ

ຂໍ້ໂຕ້ຖຽງຈໍານວນສາມາດລະບຸວ່າ:

+ n ສໍາລັບຫຼາຍກ່ວາ n.
-n ສໍາລັບຫນ້ອຍກວ່າ n.
n ສໍາລັບແທ້ n.
-amin n ໄຟລ໌ທີ່ເຂົ້າມາຄັ້ງສຸດທ້າຍ n ນາທີກ່ອນຫນ້ານີ້.
-anewer [file] ໄຟລ໌ທີ່ຜ່ານມາຫຼ້າສຸດຫຼາຍກ່ວາ ໄຟລ໌ ຖືກດັດແກ້. -anewer ມີຜົນກະທົບຕໍ່ -follow only if -follow follows-anewer on the command line
-time n ໄຟລ໌ໄດ້ເຂົ້າມາຄັ້ງສຸດທ້າຍ n * 24 ຊົ່ວໂມງກ່ອນຫນ້ານີ້
-cmin n ສະຖານະພາບຂອງໄຟລ໌ຖືກປ່ຽນແປງຫຼ້າສຸດ n ນາທີກ່ອນຫນ້ານີ້.
-cnewer [file] ສະຖານະພາບຂອງແຟ້ມຖືກປ່ຽນແປງຫຼ້າສຸດຫຼາຍກ່ວາໄຟລ໌ຖືກດັດແກ້.
- cnewer ໄດ້ຮັບຜົນກະທົບຈາກ -follow only if -follow follows before -cnewer on the command line
-time n ສະຖານະພາບຂອງໄຟລ໌ຖືກປ່ຽນແປງຫຼ້າສຸດ n * 24 ຊົ່ວໂມງກ່ອນຫນ້ານີ້.
ບໍ່ດີ ເອກະສານແມ່ນຫວ່າງເປົ່າແລະເປັນໄຟລ໌ປະກະຕິຫຼືລະບົບ.
- ບໍ່ຈິງ Always false
-fstype [type] ໄຟລ໌ແມ່ນຢູ່ໃນລະບົບໄຟລ໌ຂອງປະເພດທີ່ກໍານົດໄວ້. ລະບົບໄຟລ໌ທີ່ຖືກຕ້ອງແຕກຕ່າງກັນລະຫວ່າງສະບັບ Unix ທີ່ແຕກຕ່າງກັນ; ບັນຊີລາຍຊື່ທີ່ບໍ່ຄົບຖ້ວນຂອງປະເພດຂອງລະບົບໄຟລ໌ທີ່ໄດ້ຮັບການຍອມຮັບໃນສະບັບ Unix ຫຼືອື່ນແມ່ນ: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. ທ່ານສາມາດໃຊ້ -printf ດ້ວຍຄໍາສັ່ງ% F ເພື່ອເບິ່ງປະເພດຂອງລະບົບໄຟລ໌ຂອງທ່ານ.
-gid n ID ກຸ່ມຕົວເລກຂອງໄຟລ໌ແມ່ນ n .
- ກຸ່ມ [gname] ໄຟລ໌ເປັນ gname ກຸ່ມ (ກຸ່ມກຸ່ມທີ່ຈໍານວນ ID ຖືກອະນຸຍາດ).
-lname [pattern] ເຊັ່ນດຽວກັນກັບ -lname, ແຕ່ວ່າການແຂ່ງຂັນແມ່ນກໍລະນີ insensitive.
-ame [pattern] ເຊັ່ນດຽວກັນກັບ ຊື່ , ແຕ່ວ່າການແຂ່ງຂັນກໍບໍ່ເປັນເອກະລາດ. ຕົວຢ່າງ, ຮູບແບບ fo * ແລະ F ?? ກົງກັບຊື່ໄຟລ໌ Foo , FOO , foo , fOo , ແລະອື່ນໆ.
-inum n ໄຟລ໌ມີຈໍານວນ inode n .
-path [pattern] ເຊັ່ນດຽວກັນກັບ - ຖະຫນົນ, ແຕ່ວ່າການແຂ່ງຂັນແມ່ນກໍລະນີ insensitive.
-iregex [pattern] ເຊັ່ນດຽວກັນກັບ -regex, ແຕ່ວ່າການແຂ່ງຂັນແມ່ນກໍລະນີ insensitive.
-links n ໄຟລ໌ມີການເຊື່ອມຕໍ່ n .
-lname [pattern] ໄຟລ໌ແມ່ນເປັນການເຊື່ອມໂຍງທີ່ມີເນື້ອຫາທີ່ສອດຄ້ອງກັບຮູບແບບຂອງແກະ. metacharacters ບໍ່ປິ່ນປົວ / ຫຼື . ໂດຍສະເພາະ.
-mmin n ຂໍ້ມູນຂອງໄຟລ໌ແມ່ນດັດແກ້ຫຼ້າສຸດ n ນາທີກ່ອນຫນ້ານີ້.
-mtime n ຂໍ້ມູນຂອງໄຟລ໌ແມ່ນດັດແກ້ຫຼ້າສຸດ * 24 ຊົ່ວໂມງກ່ອນຫນ້ານີ້.
-name [pattern] ຖານຂອງຊື່ແຟ້ມ (ເສັ້ນທາງທີ່ມີໄດເລກະທໍລີຊັ້ນນໍາອອກ) ກົງກັບຮູບແບບຂອງເຕັກໂນໂລຊີ. metacharacters ( * , ? , ແລະ [] ) ບໍ່ກົງກັບ . ໃນຕອນເລີ່ມຕົ້ນຂອງຊື່ຖານ. ເພື່ອບໍ່ສົນໃຈກັບໄດເລກະທໍລີແລະໄຟລ໌ພາຍໃຕ້ມັນ, ໃຊ້ -prune ; ເບິ່ງຕົວຢ່າງໃນຄໍາອະທິບາຍຂອງ ເສັ້ນທາງ .
-new [file] ໄຟລ໌ຖືກດັດແກ້ບໍ່ດົນກວ່າ ໄຟລ໌ . ການສະແດງອອກ - ໃຫມ່ ຈະໄດ້ຮັບຜົນກະທົບຈາກ -follow only if- follow follows-newer on the line command
-nouser ບໍ່ມີຜູ້ໃຊ້ເທົ່າກັບ ID ຜູ້ໃຊ້ຈໍານວນຂອງໄຟລ໌.
-nogroup ບໍ່ມີກຸ່ມໃດທີ່ສອດຄ່ອງກັບ ID ກຸ່ມຂອງໄຟລ໌.
-path [pattern] ຊື່ແຟ້ມທີ່ກົງກັບຮູບແບບຂອງຮູບແບບຂອງຮູບແບບແກະສະຫຼັກ metacharacters ບໍ່ປິ່ນປົວ / ຫຼື . ພິເສດ ດັ່ງນັ້ນ, ສໍາລັບການຍົກຕົວຢ່າງ, ຊອກຫາ. -path './sr*sc ຈະພິມລາຍການສໍາລັບລະບົບທີ່ເອີ້ນວ່າ ./src/misc (ຖ້າມີຢູ່). ເພື່ອບໍ່ສົນໃຈຕົ້ນໄມ້ຂອງລະບົບທັງຫມົດ, ໃຫ້ນໍາໃຊ້ -prune ແທນທີ່ຈະກວດເບິ່ງທຸກໄຟລ໌ໃນຕົ້ນໄມ້. ຕົວຢ່າງເຊັ່ນການຂ້າມ directory src / emacs ແລະໄຟລ໌ແລະໂຟເດີທັງຫມົດພາຍໃຕ້ມັນ, ແລະພິມຊື່ຂອງໄຟລ໌ອື່ນໆທີ່ພົບ, ເຮັດບາງສິ່ງບາງຢ່າງເຊັ່ນ: ຊອກຫາ. -path './src/emacs' -prune-o -print
-perm [mode] bits ອະນຸຍາດຂອງໄຟລ໌ແມ່ນແທ້ [ຮູບແບບ] (octal ຫຼືສັນຍາລັກ). ໂຫມດສັນຍາລັກໃຊ້ໂຫມດ 0 ເປັນຈຸດຂອງການເດີນທາງ.
-perm -mode ທັງຫມົດຂອງ bits ອະນຸຍາດ [mode] ຖືກຕັ້ງຄ່າສໍາລັບໄຟລ໌.
-perm + mode ໃດໆຂອງ bits ອະນຸຍາດ [mode] ຖືກກໍານົດໄວ້ສໍາລັບໄຟລ໌.
-regex [pattern] ຊື່ແຟ້ມທີ່ກົງກັບ ຮູບແບບ ສະແດງອອກ ແບບ ປົກກະຕິ. ນີ້ແມ່ນຄໍາທີ່ກ່ຽວກັບເສັ້ນທາງທັງຫມົດ, ບໍ່ແມ່ນການຄົ້ນຫາ. ຕົວຢ່າງເຊັ່ນການກົງກັບໄຟລ໌ທີ່ມີຊື່ວ່າ / fubar3, ທ່ານສາມາດໃຊ້ການສະແດງອອກເປັນປົກກະຕິ . * bar. ຫຼື * b * 3 , ແຕ່ບໍ່ແມ່ນ b * r3 .
-size n [bckw] ໄຟລ໌ໃຊ້ຫນ່ວຍ n ຂອງພື້ນທີ່. ຫນ່ວຍງານແມ່ນຕັນໂດຍ 512 byte ຕາມລໍາດັບຫຼືຖ້າ b ຢູ່ຕາມ n , bytes ຖ້າ c ຕາມລໍາດັບ n , kilobytes ຖ້າ k ຕໍ່ໄປນີ້, ຫຼືຄໍາ 2 byte ຖ້າ w ຕາມ n . ຂະຫນາດບໍ່ໄດ້ນັບບລັອກອ້ອມ, ແຕ່ມັນນັບຕັນໃນໄຟລ໌ທີ່ບໍ່ຖືກຕ້ອງທີ່ຖືກຈັດສັນ.
-true ຈິງໆແລ້ວ
-type c ໄຟລ໌ແມ່ນຂອງປະເພດ c :
b Block (buffered) ພິເສດ
c ຕົວອັກສອນ (unbuffered) ພິເສດ
d Directory
p ທໍ່ຊື່ (FIFO)
f ໄຟລ໌ປົກກະຕິ
l Symbolic link
s Socket
D ປະຕູ (Solaris)
-uid n ID ຜູ້ໃຊ້ຈໍານວນໄຟຂອງໄຟລ໌ແມ່ນ n .
-used n ໄຟລ໌ທີ່ເຂົ້າມາຫຼ້າສຸດ n ມື້ຫຼັງຈາກສະຖານະຂອງມັນຖືກປ່ຽນແປງເທື່ອສຸດທ້າຍ.
-user uname ເອກະສານແມ່ນເປັນເຈົ້າຂອງໂດຍ uname ຜູ້ໃຊ້ (ID ຜູ້ໃຊ້ຈໍານວນຫລາຍຖືກອະນຸຍາດ).
-xtype c ຄືກັນກັບ - ຊະນິດ ເວັ້ນເສຍແຕ່ໄຟລ໌ແມ່ນເປັນການເຊື່ອມໂຍງສັນຍາລັກ. ສໍາລັບການເຊື່ອມຕໍ່ສັນຍາລັກ: ຖ້າ -follow ບໍ່ໄດ້ຖືກມອບໃຫ້, ທີ່ແທ້ຈິງຖ້າໄຟລ໌ແມ່ນການເຊື່ອມຕໍ່ກັບໄຟລ໌ປະເພດ c ເປັນ ; ຖ້າຫາກວ່າ - ຕິດຕາມໄດ້ຖືກມອບໃຫ້, ເປັນຄວາມຈິງຖ້າ c ແມ່ນ l. ໃນຄໍາສັບຕ່າງໆອື່ນໆ, ສໍາລັບການເຊື່ອມຕໍ່ສັນຍາລັກ,
-xtype ກວດສອບປະເພດຂອງໄຟລ໌ທີ່ບໍ່ແມ່ນການກວດສອບ.

ການກະທໍາ

-exec command

execute command ຈິງຖ້າສະຖານະ 0 ຖືກສົ່ງຄືນ. ການໂຕ້ຖຽງຕໍ່ໄປນີ້ທັງຫມົດເພື່ອ ຊອກຫາ ແມ່ນຖືກໂຕ້ຖຽງກັບຄໍາສັ່ງຈົນກ່ວາການໂຕ້ແຍ້ງທີ່ປະກອບດ້ວຍ `; ' ຖືກພົບ. ຕົວອັກສອນ `{} 'ຖືກແທນທີ່ໂດຍຊື່ໄຟລ໌ທີ່ກໍາລັງດໍາເນີນການຢູ່ທົ່ວທຸກບ່ອນທີ່ມັນເກີດຂື້ນຢູ່ໃນຄໍາໂຕ້ແຍ້ງກັບຄໍາສັ່ງ, ບໍ່ແມ່ນພຽງແຕ່ໃນການໂຕ້ຖຽງທີ່ມັນຢູ່ຄົນດຽວເທົ່ານັ້ນ, ເຊັ່ນວ່າໃນບາງສະບັບ. ການກໍ່ສ້າງເຫຼົ່ານີ້ທັງສອງອາດຈະຕ້ອງຫນີ (ກັບ `\ ') ຫຼືອ້າງອີງເພື່ອປົກປ້ອງພວກເຂົາຈາກການຂະຫຍາຍຕົວໂດຍແກະສະຫຼັກ. ຄໍາສັ່ງທີ່ຖືກປະຕິບັດໃນໄດເລກະທໍລີເລີ່ມຕົ້ນ.

-fls file

True ເຊັ່ນ: -ls ແຕ່ຂຽນເພື່ອ ຍື່ນ ເຊັ່ນ: -print.

-fprint file

True ພິມຊື່ໄຟລ໌ເຕັມໄປໃນໄຟລ ໌ໄຟລ໌ . ຖ້າຫາກວ່າ ໄຟລ໌ ບໍ່ມີຢູ່ໃນເວລາທີ່ ຄົ້ນຫາ ແມ່ນຖືກດໍາເນີນ, ມັນກໍ່ຖືກສ້າງຂຶ້ນ; ຖ້າມັນມີຢູ່, ມັນຈະຖືກຕັດອອກ. ຊື່ໄຟລ໌ `` / dev / stdout '' ແລະ `` / dev / stderr '' ແມ່ນຖືກພິຈາລະນາເປັນພິເສດ; ພວກເຂົາອ້າງເຖິງຜົນຜະລິດມາດຕະຖານແລະຜົນຜະລິດຜິດພາດມາດຕະຖານ, ຕາມລໍາດັບ.

-fprint0 file

True ເຊັ່ນ: -print0 ແຕ່ຂຽນຫາ ໄຟລ໌ ເຊັ່ນ: -print.

-fprintf file format

True ເຊັ່ນ: -printf ແຕ່ຂຽນຫາ ໄຟລ໌ ເຊັ່ນ: -print.

-ok command

ເຊັ່ນດຽວກັນກັບ -exec ແຕ່ຂໍໃຫ້ຜູ້ໃຊ້ທໍາອິດ (ໃນການນໍາສະເຫນີມາດຕະຖານ); ຖ້າການຕອບສະຫນອງບໍ່ເລີ່ມຕົ້ນດ້ວຍ `y 'ຫຼື` Y', ຢ່າດໍາເນີນຄໍາສັ່ງແລະສົ່ງຄືນທີ່ບໍ່ຖືກຕ້ອງ.

-print

True ພິມຊື່ໄຟລ໌ເຕັມໃນຜົນຜະລິດມາດຕະຖານ, ຕິດຕາມດ້ວຍສາຍໃຫມ່.

-print0

True ພິມຊື່ໄຟລ໌ເຕັມໃນຜົນຜະລິດມາດຕະຖານ, ປະຕິບັດຕາມລັກສະນະ null. ນີ້ອະນຸຍາດໃຫ້ຊື່ໄຟລ໌ທີ່ບັນຈຸ newlines ທີ່ຈະຖືກຕີຄວາມຖືກຕ້ອງໂດຍໂຄງການທີ່ກໍານົດຜົນການ ຊອກຫາ .

-printf format

True ຮູບແບບ ການພິມໃນຜົນຜະລິດມາດຕະຖານ, ການຕີລາຄາ `\ 'ແລະ`%'. ຄວາມກວ້າງຂອງເຂດແລະຄວາມຊັດເຈນສາມາດລະບຸດ້ວຍຟັງຊັນ `printf 'C. ບໍ່ຄືກັບ - print, -printf ບໍ່ໄດ້ເພີ່ມເສັ້ນໃຫມ່ໃນທ້າຍຂອງສາຍ. ການຫລົບຫນີແລະຄໍາແນະນໍາແມ່ນ:

\ a

ປຸກປຸກ

\ b

Backspace

\ c

ຢຸດການພິມອອກຈາກຮູບແບບນີ້ທັນທີແລະລຸດຜົນອອກ.

\ f

ອາຫານແບບຟອມ.

\ n

Newline

\ r

Carriage return

\ t

ແຖບແນວນອນ.

\ v

ແຖບແນວຕັ້ງ

\\

A backslash ຕົວຈິງ (`\ ').

\ NNN

ຕົວອັກສອນທີ່ມີລະຫັດ ASCII ແມ່ນ NNN (octal).

ລັກສະນະ `\ 'ທີ່ຕິດຕາມໂດຍຕົວອັກສອນອື່ນ ໆ ຈະຖືກປະຕິບັດເປັນຕົວອັກສອນທໍາມະດາດັ່ງນັ້ນທັງສອງພິມ.

%%

ເປີເຊັນເປີເຊັນ.

% a

ໄຟລ໌ທີ່ໃຊ້ເວລາສຸດທ້າຍຂອງການເຂົ້າເຖິງໃນຮູບແບບທີ່ສົ່ງກັບຄືນໂດຍການເຮັດວຽກ C `ctime '.

% A k

ໄລຍະເວລາການເຂົ້າເຖິງຄັ້ງສຸດທ້າຍຂອງໄຟລ໌ໃນຮູບແບບທີ່ກໍານົດໄວ້ໂດຍ k , ເຊິ່ງແມ່ນ `@ 'ຫຼືຄໍາສັ່ງສໍາລັບຟັງຊັນ C` strftime'. ຄ່າທີ່ເປັນໄປໄດ້ສໍາລັບ k ແມ່ນລະບຸໄວ້ຂ້າງລຸ່ມນີ້; ບາງຄົນອາດຈະບໍ່ມີຢູ່ໃນທຸກໆລະບົບ, ເນື່ອງຈາກຄວາມແຕກຕ່າງໃນລະຫວ່າງລະບົບລະບົບ.

@

ວິນາທີນັບຕັ້ງແຕ່ວັນທີ 1, 1970, 00:00 GMT.

ທົ່ງນາເວລາ:

H

ຊົ່ວໂມງ (0023)

ຂ້ອຍ

ຊົ່ວໂມງ (0112)

k

ຊົ່ວໂມງ (023)

l

ຊົ່ວໂມງ (112)

M

ນາທີ (0059)

p

AM ຫຼື PM ຂອງທ້ອງຖິ່ນ

r

ເວລາ 12 ຊົ່ວໂມງ (hh: mm: ss [AP] M)

S

second (0061)

T

ເວລາ 24 ຊົ່ວໂມງ (hh: mm: ss)

X

ຕົວແທນເວລາຂອງທ້ອງຖິ່ນ (H: M: S)

Z

ເຂດເວລາ (ເຊັ່ນ: EDT), ຫຼືບໍ່ມີຫຍັງຖ້າບໍ່ມີເຂດເວລາທີ່ສາມາດກໍານົດໄດ້

ທົ່ງນາວັນທີ:

a

ຊື່ວັນທີຫຍໍ້ຂອງທ້ອງຖິ່ນ (Sun..Sat)

A

ຊື່ອາທິດເຕັມຂອງທ້ອງຖິ່ນ, ຄວາມຍາວຂອງຕົວແປ (ວັນອາທິດ .. ວັນເສົາ)

b

ຊື່ເດືອນຫຍໍ້ຂອງທ້ອງຖິ່ນ (Jan..Dec)

B

ຊື່ເດືອນເຕັມຂອງທ້ອງຖິ່ນ, ຄວາມຍາວຂອງຕົວປ່ຽນແປງ (ເດືອນມັງກອນເຖິງເດືອນທັນວາ)

c

ວັນທີແລະເວລາຂອງທ້ອງຖິ່ນ (Sat Nov 04 12:02:33 EST 1989)

d

ວັນເດືອນ (0131)

D

ວັນ (ມມ / ວັນ / ປີ)

h

ຄືກັນກັບ b

j

ວັນປີ (001,366)

m

ເດືອນ (0112)

U

ຈໍານວນອາທິດຂອງອາທິດທີ່ມີວັນອາທິດເປັນວັນທໍາອິດຂອງອາທິດ (00..53)

w

ວັນອາທິດ (0,6)

W

ຈໍານວນອາທິດທີ່ມີວັນຈັນເປັນວັນທໍາອິດຂອງອາທິດ (00..53)

x

ການສະແດງວັນທີທ້ອງຖິ່ນ (mm / dd / yy)

y

ສຸດທ້າຍສອງຕົວເລກຂອງປີ (0099)

Y

ປີ (1970 ... )

% b

ຂະຫນາດຂອງໄຟລ໌ຂະຫນາດ 512 byte (ຂື້ນໄປ).

% c

ໄຟລ໌ຂອງການປ່ຽນແປງທີ່ໃຊ້ເວລາສຸດທ້າຍໃນຮູບແບບທີ່ສົ່ງກັບຄືນໂດຍການ C `ctime 'ການທໍາງານ.

% C k

ໄຟລ໌ຂອງການປ່ຽນແປງທີ່ໃຊ້ເວລາສຸດທ້າຍໃນຮູບແບບທີ່ກໍານົດໂດຍ k , ເຊິ່ງແມ່ນຄືກັບສໍາລັບ% A.

% d

ຄວາມເລິກຂອງໄຟລ໌ໃນຕົ້ນໄມ້ຂອງລະບົບ; 0 ຫມາຍຄວາມວ່າໄຟລ໌ແມ່ນການໂຕ້ຖຽງຄໍາສັ່ງ.

% f

ຊື່ຂອງໄຟລ໌ທີ່ມີໂຟນເດີນໍາພາໃດໆຖືກລົບອອກ (ມີພຽງແຕ່ອົງປະກອບສຸດທ້າຍ).

% F

ປະເພດຂອງລະບົບໄຟລ໌ໄຟລ໌ແມ່ນ; ຄ່ານີ້ສາມາດໃຊ້ສໍາລັບ -fstype.

% g

ຊື່ຂອງກຸ່ມຂອງໄຟລ໌ຫລື ID ກຸ່ມທີ່ຈໍານວນຖ້າກຸ່ມບໍ່ມີຊື່.

% G

ID ກຸ່ມຂອງໄຟລ໌ຂອງແຟ້ມ.

% h

ປື້ມຄູ່ມືຊັ້ນນໍາຂອງຊື່ໄຟລ໌ (ທັງຫມົດແຕ່ອົງປະກອບສຸດທ້າຍ).

% H

ການໂຕ້ຖຽງເສັ້ນຄໍາສັ່ງພາຍໃຕ້ໄຟລ໌ໃດທີ່ພົບ.

% i

ຕົວເລກຂອງ inode ຂອງແຟ້ມ (ໃນະທະສະນິຍົມ).

% k

ຂະຫນາດຂອງແຟ້ມໃນທ່ອນ 1K (ຂື້ນໄປ).

% l

ຈຸດປະສົງຂອງການເຊື່ອມໂຍງສັນຍາລັກ (ເຊືອກທີ່ເປົ່າຖ້າແຟ້ມບໍ່ແມ່ນການເຊື່ອມໂຍງສັນຍາລັກ).

% m

bits ອະນຸຍາດຂອງໄຟລ໌ (ໃນ octal).

% n

ຈໍານວນການເຊື່ອມຕໍ່ທີ່ແຂງຕໍ່ກັບໄຟລ໌.

% p

ຊື່ຂອງໄຟລ໌.

% P

ຊື່ຂອງໄຟລ໌ທີ່ມີຊື່ຂອງການໂຕ້ຖຽງບັນທັດຄໍາສັ່ງພາຍໃຕ້ການທີ່ມັນໄດ້ຖືກລຶບອອກ.

% s

ຂະຫນາດຂອງແຟ້ມໃນ bytes.

% t

ໄຟລ໌ດັດແກ້ຫຼ້າສຸດໃນຮູບແບບທີ່ສົ່ງກັບຄືນໂດຍການເຮັດວຽກ C `ctime '.

% T k

ໄຟລ໌ດັດແກ້ຫຼ້າສຸດໃນຮູບແບບທີ່ກໍານົດໂດຍ k , ເຊິ່ງແມ່ນຄືກັບສໍາລັບ% A.

% u

ຊື່ຜູ້ໃຊ້ຂອງໄຟລ໌ຫຼື ID ຜູ້ໃຊ້ຈໍານວນຖ້າຜູ້ໃຊ້ບໍ່ມີຊື່.

% U

ID ຜູ້ໃຊ້ຈໍານວນໄຟລ໌ຂອງແຟ້ມ.

ຕົວອັກສອນ `% 'ຕາມລັກສະນະໃດກໍ່ຕາມຖືກຍົກເລີກ (ແຕ່ຕົວອັກສອນອື່ນຖືກພິມ).

-prune

ຖ້າຄວາມເລິກບໍ່ແມ່ນຄວາມຈິງ, ບໍ່ລົງລະບົບປະຈຸບັນ.
ຖ້າຄວາມເລິກແມ່ນໃຫ້, ບໍ່ແມ່ນ; ບໍ່ມີຜົນກະທົບ.

-ls

True ບັນຊີລາຍຊື່ໄຟລ໌ໃນຮູບແບບ `ls -dils 'ໃນຜົນຜະລິດມາດຕະຖານ. ການນັບຈໍານວນຕັນແມ່ນ 1 ກຣາມ, ເວັ້ນເສຍແຕ່ວ່າຕົວປ່ຽນແປງສະພາບແວດລ້ອມ POSIXLY_CORRECT ຖືກກໍານົດ, ໃນກໍລະນີທີ່ມີ 512 byte blocks ຖືກນໍາໃຊ້.

ຜູ້ປະຕິບັດງານ

ຮຽງລໍາດັບຕາມລໍາດັບຫຼຸດລົງ:

( expr )

Force precedence

! expr

ຄວາມຈິງຖ້າ expr ແມ່ນບໍ່ຖືກຕ້ອງ.

-not expr

ຄື​ກັນ​ກັບ ! expr

expr1 expr2

ແລະ (implied); expr2 ບໍ່ໄດ້ຖືກປະເມີນຖ້າ expr1 ແມ່ນບໍ່ຖືກຕ້ອງ.

expr1 -a expr2

ຄືກັນກັບ expr1 expr2 .

expr1 -and expr2

ຄືກັນກັບ expr1 expr2 .

expr1 -o expr2

ຫລື expr2 ບໍ່ໄດ້ຖືກປະເມີນຖ້າ expr1 ເປັນຄວາມຈິງ.

expr1- or expr2

ຄືກັນກັບ expr1 -o expr2 .

expr1 , expr2

ລາຍຊື່; ທັງ expr1 ແລະ expr2 ແມ່ນຖືກປະເມີນສະເຫມີ. ມູນຄ່າຂອງ expr1 ຖືກຍົກເລີກ; ມູນຄ່າຂອງບັນຊີແມ່ນມູນຄ່າຂອງ expr2 .

ຕົວຢ່າງ

find / home-user joe

ຊອກຫາທຸກໄຟລ໌ພາຍໃຕ້ລະບົບ / home ທີ່ເປັນເຈົ້າຂອງໂດຍຜູ້ໃຊ້ joe.

find / usr -name * stat

ຊອກຫາທຸກໄຟລ໌ພາຍໃຕ້ໄດເລກະທໍລີ / usr ໃນ ".stat".

find / var / spool -mtime +60

ຊອກຫາທຸກໄຟລ໌ພາຍໃຕ້ໂຟເດີ / var / spool ທີ່ຖືກດັດແກ້ຫຼາຍກວ່າ 60 ມື້ກ່ອນຫນ້ານີ້.

find / tmp -name core -type f -print | xargs / bin / rm-f

ຊອກຫາໄຟລ໌ທີ່ມີຊື່ ທີ່ ຢູ່ໃນຫຼືຢູ່ຂ້າງລຸ່ມນີ້ / tmp ແລະລຶບມັນ. ໃຫ້ສັງເກດວ່ານີ້ຈະເຮັດວຽກບໍ່ຖືກຕ້ອງຖ້າມີຊື່ໄຟລ໌ທີ່ມີ newlines, ວົງຢືມດຽວຫຼືສອງ, ຫຼືສະຖານທີ່.

find / tmp -name core -type f -print0 | xargs-0 / bin / rm-f

ຊອກຫາໄຟລ໌ທີ່ມີຊື່ ທີ່ ຢູ່ພາຍໃນຫຼືພາຍໃຕ້ໄດເລກະທໍລີ / tmp ແລະລຶບພວກມັນ, ການປະມວນຜົນໄຟລ໌ຕ່າງໆໃນຊື່ວ່າໄຟລ໌ຫຼືຊື່ໂດເມນທີ່ມີວົງຢືມດຽວຫຼືຄູ່, ຊ່ອງຫວ່າງຫຼືສາຍໃຫມ່ຖືກຈັດການຢ່າງຖືກຕ້ອງ. ການທົດສອບ - ຊື່ ຈະມາກ່ອນການທົດສອບ ແບບtype ເພື່ອຫຼີກເວັ້ນການໂທຫາ ສະຖິຕິ (2) ໃນທຸກໄຟລ໌.

ຊອກຫາ. -type f-exec file '{}' \

ດໍາເນີນການ `ໄຟ 'ໃນທຸກໆໄຟລ໌ທີ່ຢູ່ໃນຫຼືຢູ່ຂ້າງລຸ່ມນີ້. ສັງເກດເຫັນວ່າເຄື່ອງຫມາຍຖືກຕິດຢູ່ໃນເຄື່ອງຫມາຍການອ້າງອິງດຽວເພື່ອປົກປ້ອງພວກເຂົາຈາກການຕີຄວາມຫມາຍໃນການຂຽນຄໍາສັບຂອງເຄື່ອງຫມາຍ. semicolon ແມ່ນການປ້ອງກັນທີ່ຄ້າຍຄືກັນໂດຍການນໍາໃຊ້ backslash, ເຖິງແມ່ນວ່າ ';' ອາດຈະໄດ້ຖືກນໍາໃຊ້ໃນກໍລະນີດັ່ງກ່າວກໍ່ໄດ້.

find / \ (-perm-4000 -fprintf /root/suidtxt '% # m% u% p \ n' \), \ \ (-size + 100M -fprintf /root/bigtxt '% -10s% p \ n '\)

ການຕິດລະບົບໄຟລ໌ພຽງແຕ່ຄັ້ງດຽວ, ລາຍຊື່ໄຟລ໌ setuid ແລະໄດເລກະທໍລີເຂົ້າໄປໃນ /root/suid.txt ແລະໄຟລ໌ຂະຫນາດໃຫຍ່ເຂົ້າໃນ /root/big.txt .

ຊອກຫາ $ HOME -time 0

ຊອກຫາໄຟລ໌ໃນໄດເລກະທໍລີທີ່ຢູ່ຂອງທ່ານເຊິ່ງໄດ້ຖືກດັດແກ້ໃນເວລາທີ່ຊາວສີ່ຊົ່ວໂມງຜ່ານມາ. ຄໍາສັ່ງນີ້ເຮັດວຽກແບບນີ້ເພາະວ່າເວລາແຕ່ລະໄຟຖືກແກ້ໄຂຫຼ້າສຸດຖືກແບ່ງອອກເປັນ 24 ຊົ່ວໂມງແລະສ່ວນທີ່ເຫລືອແມ່ນຖືກຍົກເລີກ. ນັ້ນຫມາຍຄວາມວ່າຈະມີຄໍາວ່າ - ເວລາ

0 , ໄຟລ໌ຈະມີການປ່ຽນແປງໃນອະດີດທີ່ມີຫນ້ອຍກວ່າ 24 ຊົ່ວໂມງກ່ອນຫນ້ານີ້.

ຊອກຫາ. -perm 664

ຄົ້ນຫາໄຟລ໌ທີ່ມີການອ່ານແລະຂຽນສໍາລັບເຈົ້າຂອງແລະກຸ່ມ, ແຕ່ຜູ້ທີ່ສາມາດອ່ານໄດ້ແຕ່ບໍ່ຂຽນເຂົ້າ. ໄຟລ໌ທີ່ຕອບສະຫນອງເງື່ອນໄຂເຫຼົ່ານີ້ແຕ່ມີສິດການຕັ້ງຄ່າ bits ອື່ນໆ (ຕົວຢ່າງເຊັ່ນຖ້າມີຜູ້ໃດຜູ້ຫນຶ່ງສາມາດດໍາເນີນການໄຟລ໌) ຈະບໍ່ຖືກຕ້ອງ.

ຊອກຫາ. -perm-664

ຄົ້ນຫາໄຟລ໌ທີ່ມີການອ່ານແລະຂຽນສໍາລັບເຈົ້າຂອງແລະກຸ່ມຂອງເຂົາເຈົ້າ, ແລະຜູ້ທີ່ສາມາດອ່ານໄດ້, ບໍ່ວ່າຈະມີການມີສິດອະນຸຍາດເພີ່ມໃດໆ (ຕົວຢ່າງເຊັ່ນບິດທີ່ປະຕິບັດໄດ້). ຕົວຢ່າງນີ້ຈະກົງກັບໄຟລ໌ທີ່ມີໂຫມດ 0777.

ຊອກຫາ. -perm / 222

ຄົ້ນຫາໄຟລ໌ທີ່ສາມາດຂຽນໄດ້ໂດຍຜູ້ໃດຜູ້ຫນຶ່ງ (ເຈົ້າຂອງ, ຫຼືກຸ່ມຂອງພວກເຂົາ, ຫຼືຜູ້ອື່ນ).

ຊອກຫາ. -perm / 220 find -perm / u + w, g + w find -perm / u = w, g = w

ທັງສາມຄໍາສັ່ງເຫຼົ່ານີ້ເຮັດສິ່ງດຽວກັນ, ແຕ່ຫນຶ່ງຄັ້ງທໍາອິດໃຊ້ຕົວເລກ octal ຂອງຮູບແບບໄຟລ໌ແລະອີກສອງຄົນໃຊ້ຮູບແບບສັນຍາລັກ. ຄໍາສັ່ງເຫຼົ່ານີ້ຄົ້ນຫາສໍາລັບໄຟລ໌ທີ່ສາມາດຂຽນໄດ້ໂດຍທັງເຈົ້າຂອງຫຼືກຸ່ມຂອງພວກເຂົາ. ໄຟລ໌ເຫຼົ່ານີ້ບໍ່ຈໍາເປັນຕ້ອງຂຽນໄດ້ໂດຍທັງເຈົ້າຂອງແລະກຸ່ມທີ່ຈະຖືກຈັບຄູ່; ຈະເຮັດແນວໃດ.

ຊອກຫາ. -perm -220 find -perm -g + w, u + w

ທັງສອງຄໍາສັ່ງເຫຼົ່ານີ້ເຮັດສິ່ງດຽວກັນ; ຄົ້ນຫາສໍາລັບໄຟລ໌ທີ່ສາມາດຂຽນໄດ້ໂດຍທັງເຈົ້າຂອງແລະກຸ່ມຂອງພວກເຂົາ.

ຊອກຫາ. -perm-444 -perm / 222! -perm / 111 find -perm -a + r -perm / a + w! -perm / a + x

ທັງສອງຄໍາສັ່ງເຫຼົ່ານີ້ທັງການຄົ້ນຫາໄຟລ໌ທີ່ສາມາດອ່ານໄດ້ສໍາລັບທຸກໆຄົນ (-perm -444 ຫຼື -perm -a + r), ມີຢ່າງຫນ້ອຍສຸດຂຽນຊຸດ bit (-perm / 222 ຫຼື -perm / a + w) ແຕ່ບໍ່ສາມາດເຮັດໄດ້ ສໍາລັບທຸກຄົນ (! -perm / 111 ແລະ! -perm / a + x ຕາມລໍາດັບ)

ສິ່ງສໍາຄັນ: ໃຊ້ຄໍາສັ່ງ man ( % man ) ເພື່ອເບິ່ງວິທີການໃຊ້ຄໍາສັ່ງໃນຄອມພິວເຕີຂອງທ່ານ.