คำถามติดแท็ก coreutils

GNU Core Utilities คือการใช้งานเครื่องมือ GNU Core ของบรรทัดคำสั่งของระบบ POSIX รวมถึงเครื่องมือเช่น ls, cp, mv, rm, ฯลฯ

3
เหตุใด 'ls' จึงตัดรายการด้วยช่องว่างในเครื่องหมายคำพูดเดี่ยว
ฉันเพิ่งสังเกตเห็นว่าในหนึ่งในเครื่องของฉัน (เรียกใช้ Debian Sid) เมื่อใดก็ตามที่ฉันพิมพ์lsชื่อไฟล์ใด ๆ ที่มีช่องว่างมีคำพูดเดียวรอบมัน ฉันตรวจสอบชื่อแทนของฉันทันทีเพื่อค้นหาพวกเขาเหมือนเดิม wyatt@debian630:~/testdir$ ls 'test 1.txt' test1.txt wyatt@debian630:~/testdir$ alias alias ls='ls --color=auto' alias wget='wget --content-disposition' wyatt@debian630:~/testdir$ (ภาพ) การทดสอบอื่นด้วยไฟล์ที่มีเครื่องหมายคำพูดเดี่ยวในชื่อของพวกเขา (เช่นการตอบคำขอโดย jimmij): wyatt@debian630:~/testdir$ ls 'test 1.txt' test1.txt 'thishasasinglequotehere'\''.txt' wyatt@debian630:~/testdir$ touch "'test 1.txt'" wyatt@debian630:~/testdir$ ls ''\''test 1.txt'\''' test1.txt 'test 1.txt' 'thishasasinglequotehere'\''.txt' (ภาพ) อัพเดตด้วยเอาต์พุต coreutils-8.26 ใหม่ (ซึ่งเป็นที่ยอมรับน้อยกว่าความสับสน แต่ยังคงเกิดการระคายเคืองตามค่าเริ่มต้น) …

13
แก้ไขการล็อคในเชลล์สคริปต์หรือไม่
บางครั้งคุณต้องตรวจสอบให้แน่ใจว่ามีเพียงหนึ่งอินสแตนซ์ของเชลล์สคริปต์เท่านั้นที่ทำงานพร้อมกัน ตัวอย่างเช่นงาน cron ซึ่งดำเนินการผ่าน crond ที่ไม่มีการล็อคด้วยตนเอง (เช่น Solaris crond เริ่มต้น) รูปแบบทั่วไปที่จะใช้การล็อคคือรหัสดังนี้: #!/bin/sh LOCK=/var/tmp/mylock if [ -f $LOCK ]; then # 'test' -> race begin echo Job is already running\! exit 6 fi touch $LOCK # 'set' -> race end # do some work rm $LOCK แน่นอนรหัสดังกล่าวมีสภาพการแข่งขัน มีหน้าต่างเวลาที่การประมวลผลของทั้งสองอินสแตนซ์สามารถเลื่อนไปข้างหลังบรรทัดที่ 3 ก่อนที่จะสามารถแตะ$LOCKไฟล์ได้ สำหรับงาน …

3
`ใช่ 'เขียนไฟล์อย่างรวดเร็วอย่างไร?
ขอยกตัวอย่าง: $ timeout 1 yes "GNU" > file1 $ wc -l file1 11504640 file1 $ for ((sec0=`date +%S`;sec<=$(($sec0+5));sec=`date +%S`)); do echo "GNU" >> file2; done $ wc -l file2 1953 file2 ที่นี่คุณสามารถเห็นได้ว่าคำสั่งyesเขียน11504640เส้นในครั้งที่สองในขณะที่ฉันสามารถเขียนเพียง1953บรรทัดใน 5 วินาทีโดยใช้ทุบตีของและforecho ตามที่แนะนำในข้อคิดเห็นมีเทคนิคต่าง ๆ เพื่อให้มีประสิทธิภาพมากขึ้น แต่ไม่มีใครเข้ามาใกล้เคียงกับความเร็วของyes: $ ( while :; do echo "GNU" >> file3; done) & pid=$! …
58 bash  coreutils  write  yes 

2
cp -L กับ cp -H
ปัญหา เมื่อคัดลอกไฟล์ด้วยcp -Hหรือcp -Lฉันได้ผลลัพธ์เดียวกัน: $ ls -l fileA fileA -> fileB $ cp fileA somewhere/ -H $ ls -l somewhere/ fileA # fileA is a copy of fileB, only renamed, with same properties! คำตอบนี้ที่นี่-Rอธิบายตัวเลือกทั้งสองเป็นที่คล้ายกันเว้นแต่ใช้ร่วมกับ ไม่ได้สำหรับฉัน. ซอฟต์ - ไฟล์ฮาร์ดลิงก์จะเปลี่ยนชื่อสำเนาของไฟล์ที่ชี้ไปที่ต้นทาง คำถาม : การใช้ที่เหมาะสมคืออะไรcp -Hและcp -L? นี่เป็นพฤติกรรมที่คาดหวังหรือไม่? ความพยายามที่จะแก้ปัญหาของฉัน : man cpบอกฉันค่อนข้างเหมือนกันสำหรับทั้งสองตัวเลือก แต่info cpของถ้อยคำที่ทำให้เกิดความสับสนมากยิ่งขึ้นสำหรับฉัน …

3
โปรแกรม `['ที่อยู่ในระบบ / bin ของฉันคืออะไร
ผมก็เพิ่งเรียกดู Fedora ของฉันโฟลเดอร์และพบไบนารีที่มีชื่อว่า/bin [ฉันพยายามค้นหาข้อมูลเพิ่มเติมทางอินเทอร์เน็ต แต่ฉันไม่พบสิ่งใดที่มีประโยชน์ การดำเนินการให้ผ่านstraceดูเหมือนจะไม่ก่อให้เกิดประโยชน์ใด ๆ สำหรับการตรวจสอบอย่างใกล้ชิดเช่นกัน นั่นคืออะไร? ฉันควรตื่นตระหนกเหรอ? มันอาจเป็นผลมาจากการประนีประนอมระบบหรือไม่? ฉันควรเรียกใช้หรือไม่ มันเป็นของแพคเกจใด ๆ ?
32 fedora  gnu  coreutils 

5
ทำไม cp --reflink = auto ไม่ใช่พฤติกรรมเริ่มต้น
เหตุใดจึงcp --reflink=autoไม่ใช่พฤติกรรมเริ่มต้น มันอาจก่อให้เกิดอันตรายใด ๆ ที่จะเปิดใช้งานหรือไม่ เป็นไปได้หรือไม่ที่จะเปิดใช้งานในเวลาคอมไพล์ดังนั้นจึงถูกใช้ทั่วทั้งระบบไม่ใช่เฉพาะในเชลล์แบบโต้ตอบ?
31 btrfs  coreutils 

2
เหตุใด ln -s จึงยอมรับอาร์กิวเมนต์เดี่ยว
> cd /tmp > ln -s foo > ls -alhF /tmp lrwxrwxrwx 1 user user 3 Jul 29 14:00 foo -> foo นี่เป็นข้อบกพร่องlnหรือมีกรณีการใช้งานสำหรับการเชื่อมโยงไฟล์กับตัวเองหรือไม่? coreutils 8.21-1ubuntu5.1นี้จะมีการ
27 symlink  coreutils  ln 

3
GNU“ install” -d flag - มันทำงานยังไง?
ฉันพยายามเขียนกฎ makefile เพื่อคัดลอกไดเรกทอรีรักษาโครงสร้างและเนื่องจากกฎอื่น ๆ ทั้งหมดใน makefiles ของเราใช้installฉันต้องการให้สอดคล้องกัน ใน manpage มันพูดว่า: สรุป install [OPTION]... [-T] SOURCE DEST install [OPTION]... SOURCE... DIRECTORY install [OPTION]... -t DIRECTORY SOURCE... install [OPTION]... -d DIRECTORY... -d, --directory treat all arguments as directory names; create all components of the specified directories ตกลงว่าดูเหมือนสิ่งที่ฉันต้องการ ... แต่ธงไม่สมเหตุสมผล คุณจะระบุไดเรกทอรีปลายทางที่จะติดตั้งได้อย่างไร ฉันพยายามทำการทดสอบขั้นพื้นฐานโดยการสร้างโครงสร้างไดเร็กตอรี่ที่ต้องการในฮาร์ดดิสก์ของฉัน: ~>tree …
26 coreutils 

4
มูลค่าเพิ่มของตัวเลือก -T ใน GNU cp และ mv คืออะไร?
ทำไมคำสั่ง GNU Coreutils ถึงมี-T/--no-target-directoryตัวเลือก? ดูเหมือนว่าทุกอย่างที่ทำได้สามารถทำได้โดยใช้ซีแมนทิกส์ของ.(จุดตัวเอง) ในลำดับชั้นไดเรกทอรี Unix แบบดั้งเดิม พิจารณา: cp -rT /this/source dir -Tตัวเลือกที่จะช่วยป้องกันการคัดลอกจากการสร้างdir/sourceไดเรกทอรีย่อย ค่อนข้าง/this/sourceจะถูกระบุด้วยdirและเนื้อหาจะถูกแมประหว่างต้นไม้ตามลำดับ ดังนั้นสำหรับตัวอย่างเช่น/this/source/foo.cไปdir/foo.cและอื่น ๆ dir/source/foo.cมากกว่าที่จะ แต่สามารถทำได้อย่างง่ายดายโดยไม่ต้อง-Tใช้ตัวเลือก: cp -r /this/source/. dir # Probably worked fine since dawn of Unix? ความหมายองค์ประกอบจุดต่อท้ายจะถูกคัดลอกเป็นเด็กของdirแต่แน่นอนว่า "เด็ก" ที่มีอยู่แล้ว (เพื่อไม่ต้องถูกสร้างขึ้น) และเป็นจริงdirตัวเองเพื่อให้ผลเป็นที่ยึดติดกับ/this/pathdir มันทำงานได้ดีถ้าไดเรกทอรีปัจจุบันเป็นเป้าหมาย: cp -r /this/tree/node/. . # node's children go to current dir มีบางสิ่งที่คุณสามารถทำได้ด้วยสิ่งเดียว-Tที่ทำให้การดำรงอยู่ของมันมีเหตุผล? (นอกจากการรองรับระบบปฏิบัติการที่ไม่ได้ใช้งานไดเรกทอรีดอทแล้วเหตุผลที่ไม่ได้กล่าวถึงในเอกสาร) …
26 cp  coreutils 

4
การใช้ตัวเลือก -f สำหรับ `touch 'คืออะไร?
จากman touch: -f (ignored) แต่ฉันไม่ได้รับสิ่งที่หมายโดยไม่สนใจ ฉันได้ลองทำดังนี้: $ ls -l file -rw-rw-r-- 1 pandya pandya 0 Mar 20 16:17 file $ touch -f file $ ls -l file -rw-rw-r-- 1 pandya pandya 0 Mar 20 16:18 file -fและสังเกตเห็นว่ามันมีการเปลี่ยนแปลงการประทับเวลาทั้งๆที่ ดังนั้นฉันต้องการรู้ว่าสิ่งใด-fเป็นสิ่งที่ดี
23 coreutils  touch 

2
md5sum prepends '\' กับเช็คซัม
ทำไม md5sum กำลังเตรียม "\" ที่หน้าเช็คซัมเมื่อค้นหาเช็คซัมของไฟล์ที่มี "\" ในชื่อ $ md5sum /tmp/test\\test \d41d8cd98f00b204e9800998ecf8427e /tmp/test\\test เช่นเดียวกับที่บันทึกไว้สำหรับยูทิลิตี้อื่น ๆ

3
ตัวเลือก“ 1 เดือนที่ผ่านมา” ในคำสั่ง date ทำงานอย่างไร
ฉันไม่แน่ใจว่าจะได้รับวันที่ผ่านมาภายในวันที่ปัจจุบันหรือถ้าใช้เวลาเพียง 30 หรือ 31 วัน เช่น หากวันที่ปัจจุบันคือMarch 28th1 เดือนที่ผ่านมาจะต้องเป็นFebruary 28thแต่จะเกิดอะไรขึ้นเมื่อมันMarch 30th? สถานการณ์ ฉันต้องการสำรองข้อมูลบางไฟล์ในแต่ละวันสคริปต์จะบันทึกไฟล์นี้ภายในวันที่ปัจจุบันด้วย$(date +%Y%m%d)รูปแบบเช่น20150603_bckp.tar.gzจากนั้นเมื่อถึงเดือนถัดไปให้ลบไฟล์เหล่านั้นทั้งหมดภายใน 1 เดือนที่ผ่านมายกเว้นไฟล์ที่ 1 และ 15 ดังนั้นนี่คือ สภาพของฉัน: past_month = $(date -d "-1 month" +%Y%m%d) day = $(date +%d) if [ "$day" != 01 ] && [ "$day" != 15 ] then rm /path/of/files/${past_month}_bckp.tar.gz echo "Depuration done" …
22 date  coreutils 

6
ตัวเลือกใด ๆ ที่จะแทนที่ GNU coreutils บน Linux?
ฉันได้รับความคิดเกี่ยวกับการหยุดใช้ของ GNU coreutils บนระบบลินุกซ์ของฉัน แต่จะซื่อสัตย์แตกต่างจากหลายส่วนประกอบ GNU อื่น ๆ ผมไม่สามารถคิดทางเลือกใด ๆ(บน Linux) coreutils ของ GNU มีทางเลือกอะไรบ้าง? ฉันต้องการมากกว่าหนึ่งแพ็คเกจหรือไม่ ลิงค์ไปยังโครงการจะต้องมีคะแนนโบนัสสำหรับแพ็คเกจการตั้งชื่อ distro นอกจากนี้โปรดอย่าแนะนำสิ่งต่าง ๆ เว้นแต่คุณจะรู้ว่ามันทำงานบน Linux และสามารถอ้างอิงคำแนะนำได้ ฉันสงสัยฉันจะเปลี่ยนเมล็ดในเร็ว ๆ ./configure; make; make installนี้และฉันมากขี้เกียจเกินไปสำหรับสิ่งที่มากเกินตรงไปตรง แน่นอนฉันจะไม่แฮ็ค C สำหรับมัน คำเตือน:หาก distro ของคุณใช้ coreutils ในการลบออกอาจทำลายวิธีการทำงานของ distro ของคุณ อย่างไรก็ตามการไม่มีพวกเขาเป็นสิ่งแรกที่คุณ$PATHไม่ควรทำเพราะสคริปต์ส่วนใหญ่ควรใช้เส้นทางที่สมบูรณ์

3
ทำไม coreutils ถึงเรียงช้ากว่า Python
ฉันเขียนสคริปต์ต่อไปนี้เพื่อทดสอบความเร็วของฟังก์ชันการเรียงลำดับของ Python: from sys import stdin, stdout lines = list(stdin) lines.sort() stdout.writelines(lines) ฉันเปรียบเทียบสิ่งนี้กับsortคำสั่งcoreutils บนไฟล์ที่มี 10 ล้านบรรทัด: $ time python sort.py <numbers.txt >s1.txt real 0m16.707s user 0m16.288s sys 0m0.420s $ time sort <numbers.txt >s2.txt real 0m45.141s user 2m28.304s sys 0m0.380s คำสั่งในตัวใช้ CPU ทั้งสี่ตัว (Python ใช้เพียงอันเดียว) แต่ใช้เวลาในการรันนานกว่า 3 เท่า! สิ่งที่ช่วยให้? ฉันใช้ Ubuntu …

5
/ usr / bin / ptx: คุณสามารถให้กรณีการใช้งานหรือสอง?
ฉันกำลังดูรายการของไฟล์ที่รวมอยู่ใน coreutils และฉันสามารถสร้างตัวอย่างของวิธีที่ฉันสามารถใช้คำสั่งทั้งหมดที่จัดเตรียมไว้ให้สำหรับตัวเองยกเว้น ptx คุณสามารถยกตัวอย่างการใช้ ptx หนึ่งหรือสอง (หรือสาม) ได้หรือไม่ กรณีการใช้งานที่หลากหลายยิ่งดี $ apropos ptx ptx(1) - produce a permuted index of file contents

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