Unix & Linux

คำถาม & คำตอบสำหรับผู้ใช้ Linux, FreeBSD และระบบปฏิบัติการ Un * x อื่น ๆ

6
เรียงลำดับทุบตีตามความยาวขององค์ประกอบ?
รับอาร์เรย์ของสตริงฉันต้องการเรียงลำดับตามความยาวของแต่ละองค์ประกอบ ตัวอย่างเช่น... array=( "tiny string" "the longest string in the list" "middle string" "medium string" "also a medium string" "short string" ) ควรจัดเรียง ... "the longest string in the list" "also a medium string" "medium string" "middle string" "short string" "tiny string" (เป็นโบนัสมันจะดีถ้ารายการเรียงสตริงที่มีความยาวเท่ากันตามลำดับตัวอักษรในตัวอย่างข้างต้นmedium stringถูกเรียงลำดับก่อนmiddle stringแม้ว่าจะมีความยาวเท่ากัน แต่นั่นไม่ใช่ข้อกำหนด "ยาก" หากซับซ้อนกว่า สารละลาย). มันก็โอเคถ้ามีการจัดเรียงอาร์เรย์ในสถานที่ …

2
การค้นหาไฟล์ที่เก่ากว่า x วันในระบบที่มีช่องว่างไม่ว่าง
ฉันต้องการค้นหาและลบไฟล์ที่เก่ากว่า 1 สัปดาห์ในหน่วยการพัฒนา มีสาธารณูปโภคจำนวน จำกัด ในหน่วยนี้ -mtime findเพรดิเคตของไม่พร้อมใช้งาน ฉันจะตรวจสอบไฟล์ทั้งหมดที่เก่ากว่า x วันได้อย่างไร?
9 linux  files  find  date  busybox 

4
ฉันจะทำให้ btrfs แสร้งทำเป็น ext4 ได้อย่างไร
Dropbox เพิ่งประกาศว่าลูกค้า Linux จะสนับสนุน ext4 ในอนาคตเท่านั้น ขณะนี้ฉันใช้ Dropbox บนพาร์ติชั่น btrfs (ไม่มีปัญหาใด ๆ ) เห็นได้ชัดว่าการสนับสนุน xattr เป็นสิ่งจำเป็น ทั้ง ext4 และ btrfs รองรับสิ่งนี้และแน่นอนฉันไม่ทราบถึงคุณสมบัติของ ext4 ที่ btrfs ไม่สนับสนุนด้วย ฉันไม่ทราบว่า Dropbox ตั้งใจจะตรวจจับระบบไฟล์ แต่มีวิธีใดบ้างที่ฉันจะทำให้ btrfs แสร้งทำเป็น ext4

1
“ ALL ALL = (ALL) NOPASSWD: ALL” ถูกเพิ่มอัตโนมัติในไฟล์ / etc / sudoers ของฉัน นี่เป็นการละเมิดความปลอดภัยหรือไม่
ALL ALL=(ALL) NOPASSWD:ALLบรรทัดถูกเพิ่มอัตโนมัติสองครั้งที่ท้าย/etc/sudoersไฟล์ของฉัน linux ของฉันหยุดถามรหัสผ่านทุกครั้งที่ฉันรันคำสั่ง sudo นี่ทำให้ฉันตรวจสอบปัญหา แม้หลังจากรันsudo -kเพื่อรีเซ็ตเวลาผ่อนผันแล้วก็จะไม่ขอรหัสผ่านของฉัน ฉันค้นหาความหมายของบรรทัดนั้นและแสดงความคิดเห็น 2 บรรทัดเพื่อแก้ไขปัญหาและสิ่งต่าง ๆ กลับสู่ปกติ แต่ตามการค้นหาของฉันไฟล์ sudoers นั้นจะแก้ไขด้วยตนเองเท่านั้นและไม่มีทางที่ฉันจะอนุญาตให้ผู้ใช้ NOPASSWD ได้รับอนุญาตให้ใช้คำสั่งทั้งหมด นี่หมายความว่าสคริปต์ที่ฉันดำเนินการเปลี่ยนแปลงไฟล์ sudoers หรือไม่ นี่เป็นสาเหตุของความกังวลหรือไม่? ระบบปฏิบัติการ: Linux Mint 18.3 Cinnamon
9 security  sudo 


3
วิธีค้นหาฟิลด์ใน ls -l หมายถึง [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Unix & Linux Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา คำถามของฉันไม่ใช่ความหมายของแต่ละฟิลด์คำถามของฉันคือวิธีการระบุความหมายของแต่ละฟิลด์ หน้า man เพียงแค่ระบุ -l ใช้รูปแบบรายการแบบยาวโดยไม่ต้องอธิบายว่ารูปแบบรายการแบบยาวมีอะไร
9 ls 

2
ทำไม '[az] *' ตรงกับสตริงที่ไม่ใช่ตัวอักษร?
ฉันมีไฟล์ที่alphanumมีสองบรรทัดเหล่านี้: 123 abc this is a line ฉันสับสนว่าทำไมเมื่อฉันรันsed 's/[a-z]*/SUB/' alphanumฉันจะได้ผลลัพธ์ต่อไปนี้: SUB123 abc SUB is a line ผมคาดหวังว่า: 123 SUB SUB is a line ฉันพบวิธีแก้ไข (ใช้sed 's/[a-z][a-z]*/SUB/'แทน) แต่ฉันไม่เข้าใจว่าทำไมมันถึงใช้งานได้และของฉันก็ใช้ไม่ได้ คุณช่วยได้ไหม

2
ลบไฟล์ที่ไม่มีสตริงในชื่อ
ฉันต้องการลบไฟล์ที่ไม่มีสตริง '999' (ไม่มี '') ในชื่อของพวกเขา ฉันเหนื่อย: grep -vlr 999 . | xargs -0 rm -f -- find . -print0 | grep --null-data -v 999 | xargs -0 rm -- แต่ไม่มีใครทำงานเลย ฉันใช้ macOS Sierra โดยใช้ bash: 3.2.57
9 bash  osx  filenames  rm 

3
ค้นหา PDF ทั้งหมดที่มีอักขระอย่างน้อยสามตัวในชื่อ
ฉันต้องการค้นหาไฟล์ PDF ที่มีชื่อ (ไม่รวมส่วนขยาย) มากกว่าสามไฟล์ $ find ~ -iregex ".{3,}/.pdf" ไม่มีอะไรคืน แต่ $ find ~ -iregex ".+/.pdf" โรงงาน ฉันจะเปิดใช้งาน{3,}ชุดตัวเลือกได้อย่างไร
9 find 

2
เหตุใดค่า umask บางอย่างจึงไม่มีผล
ฉันพยายามที่จะเข้าใจการอนุญาตที่ดีขึ้นดังนั้นฉันจึงทำ "แบบฝึกหัด" นี่คือลำดับของคำสั่งที่ฉันใช้กับเอาต์พุตที่เกี่ยวข้อง: $ umask 0022 $ touch file1 $ ls -l file1 -rw-r--r-- 1 user group 0 Mar 16 12:55 file1 $ mkdir dir1 $ ls -ld dir1 drwxr-xr-x 2 user group 4096 Mar 16 12:55 dir1 นั่นสมเหตุสมผลเพราะเรารู้ว่าการอนุญาตไฟล์เริ่มต้นคือ666( rw-rw-rw-) และสิทธิ์เริ่มต้นไดเรกทอรีคือ777( rwxrwxrwx) ถ้าฉันลบค่า umask จากสิทธิ์เริ่มต้นเหล่านี้ฉันมี 666-022=644, rw-r--r--สำหรับfile1ดังนั้นมันเชื่อมโยงกันกับการส่งออกก่อนหน้า; 777-022=755, rwx-r-x-r-xสำหรับdir1, ยังสอดคล้องกัน …

3
ทำไมหรือทำไมจึงใช้ `. *?` ดีกว่า '. *'?
ฉันตอบคำถามนี้ใน SuperUserซึ่งเป็นสิ่งที่เกี่ยวข้องกับประเภทของนิพจน์ทั่วไปที่ใช้ในขณะที่ทำการพิมพ์ออกมา คำตอบที่ฉันให้คือ: tail -f log | grep "some_string.*some_string" จากนั้นในสามความคิดเห็นต่อคำตอบของฉัน@Bobเขียนสิ่งนี้: .*เป็นโลภและอาจจับภาพมากกว่าที่คุณต้องการ .*?มักจะดีกว่า ถ้าอย่างนั้น the ?เป็นตัวดัดแปลง*ทำให้มันขี้เกียจแทนที่จะเป็นค่าเริ่มต้นโลภ สมมติว่า PCRE ฉันไปหาPCREแต่ไม่สามารถเข้าใจความหมายของคำตอบนี้ได้? และในที่สุดนี้ ฉันควรชี้ให้เห็นว่านี่คือ regex (grep ทำ POSIX regex โดยปริยาย) ไม่ใช่ shell glob ฉันรู้ว่า Regex คืออะไรและใช้งานพื้นฐานมากเพียงใดในคำสั่ง grep ดังนั้นฉันไม่สามารถรับความคิดเห็นทั้งสามข้อเหล่านี้ได้และฉันมีคำถามเหล่านี้อยู่ในใจ: อะไรคือความแตกต่างในการใช้งานของ.*?vs. .*? ไหนดีกว่าและภายใต้สถานการณ์ใด กรุณาให้ตัวอย่าง นอกจากนี้ยังจะเป็นประโยชน์ในการทำความเข้าใจความคิดเห็นถ้าใครทำได้ UPDATE: เพื่อเป็นคำตอบสำหรับคำถามRegex ต่างจาก Shell Globs อย่างไร @Kusalanandaระบุลิงก์นี้ในความคิดเห็นของเขา หมายเหตุ: หากจำเป็นโปรดอ่านคำตอบของฉันสำหรับคำถามนี้ก่อนตอบเพื่ออ้างอิงถึงบริบท

7
ฉันจะอ้างอิงการขยายตัวแปรภายในสตริงเพื่อหลีกเลี่ยงการแยกคำได้อย่างไร
$ myvar="/path to/my directory" $ sudo bash -c "cd $myvar" ในกรณีเช่นนี้ฉัน$myvarจะอ้างอิงเพื่อหลีกเลี่ยงการแยกคำเนื่องจากช่องว่างสีขาวในค่าของได้myvarอย่างไร
9 bash  shell  sudo  quoting 

2
เป็นไปได้อย่างไรที่ 8 บล็อกจะได้รับการจัดสรร แต่ขนาดไฟล์ 0
มีคนถามฉันในเว็บไซต์อื่นเกี่ยวกับคำถามนี้เช่นไฟล์ชื่อ "abc.dat" มีขนาดไฟล์ 0 แต่ 8 บล็อกและนี่คือผลลัพธ์ที่ฉันขอให้เขาให้ฉัน (ข้อความบางส่วนได้รับการแปลจากภาษาจีนเป็นภาษาอังกฤษ): $ cp abc.dat abc2.dat; ls -ls abc2.dat #try to copy, it still 8 blocks but 0 byte 8 -rw-rw-r-- 1 rokeabbey rokeabbey 0 Feb 27 19:39 abc2.dat 8 -rw-rw-r-- 1 rokeabbey rokeabbey 0 ก.ย. 18 19:11 abc.dat #sorry นี่อาจเป็นผลลัพธ์ที่ผิดปกติที่เขาเพิ่ม $ stat abc.dat …

1
เหตุใดหน้าคนนี้จึงมีวันที่วันนี้
เหตุใดmanหน้าเฉพาะ(ในกรณีของฉันสำหรับncคำสั่ง) จะมีวันที่วันนี้โดยที่ฉันไม่ทำการอัปเดตใด ๆ กับระบบ นอกจากนี้เหตุใดบันทึก "การอัปเดตที่ไม่ต้องใส่ข้อมูล" จึงไม่แสดงกิจกรรมเฉพาะสำหรับวันนั้น 2018-03-14 07:47:38,124 INFO Initial blacklisted packages: 2018-03-14 07:47:38,135 INFO Starting unattended upgrades script 2018-03-14 07:47:38,135 INFO Allowed origins are: ['o=LinuxMint,a=qiana-security', 'o=LinuxMintESM,a=qiana'] 2018-03-14 07:47:51,767 INFO No packages found that can be upgraded unattended and no pending auto-removals นี่คือส่วนท้ายสำหรับncหน้าคน: BSD March 14, 2018 BSD ใช้ …

1
tr a </ etc / hosts | sort -r | pr -d> / etc / hosts
ในบรรทัดนี้: tr a A &lt; /etc/hosts | sort -r |pr -d &gt; /etc/hosts ผลลัพธ์ที่คาดหวังคืออะไร ฉันรู้ว่าตัวพิมพ์เล็ก 'a' จะเปลี่ยนเป็นตัวพิมพ์ใหญ่ 'A' แต่จะทำอะไรต่อไป ไฟล์ต้นฉบับจะถูกเขียนทับเนื่องจากการเปลี่ยนเส้นทางเป็นชื่อไฟล์เดียวกันหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.