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

4
เปลี่ยนเส้นทางไปยัง / dev / null
ฉันกำลังอ่านสคริปต์เปลือกทุบตีตัวอย่าง: #!/bin/bash # This script makes a backup of my home directory. cd /home # This creates the archive tar cf /var/tmp/home_franky.tar franky > /dev/null 2>&1 # First remove the old bzip2 file. Redirect errors because this generates some if the archive # does not exist. Then create a new …
144 bash-script  null 

9
ทำไม / dev / null ไฟล์? ทำไมฟังก์ชั่นการใช้งานไม่ได้เป็นโปรแกรมอย่างง่าย?
ฉันพยายามเข้าใจแนวคิดของไฟล์พิเศษบน Linux อย่างไรก็ตามมีไฟล์พิเศษใน/devดูเหมือนโง่ธรรมดาเมื่อฟังก์ชั่นสามารถนำมาใช้โดยไม่กี่บรรทัดใน C เพื่อความรู้ของฉัน ยิ่งไปกว่านั้นคุณสามารถใช้มันในลักษณะเดียวกันได้อย่างมากเช่นการไพพ์ไปที่nullแทนที่จะเปลี่ยนไป/dev/nullใช้ มีเหตุผลที่เฉพาะเจาะจงในการใช้เป็นไฟล์หรือไม่? การไม่ทำให้เป็นไฟล์ทำให้เกิดปัญหาอื่น ๆ อีกมากมายเช่นมีหลายโปรแกรมที่เข้าถึงไฟล์เดียวกันหรือไม่

1
ฉันจะใช้ null bytes ใน Bash ได้อย่างไร
ฉันได้อ่านมาแล้วเนื่องจากเส้นทางของไฟล์ใน Bash สามารถมีตัวละครใด ๆ ยกเว้น null null (ไบต์ที่มีค่าเป็นศูนย์$'\0') จึงเป็นการดีที่สุดที่จะใช้ null null เป็นตัวคั่น ตัวอย่างเช่นหากผลลัพธ์ของfindจะถูกส่งไปยังโปรแกรมอื่นขอแนะนำให้ใช้-print0ตัวเลือก (สำหรับเวอร์ชันfindที่มี) แต่ถึงแม้ว่าบางอย่างเช่นนี้จะทำงานได้ดี (การพิมพ์เส้นทางไฟล์คั่นด้วยบรรทัดใหม่ - ไม่ต้องกังวลนี่เป็นเพียงการสาธิตฉันไม่ได้ทำในสคริปต์จริง): find -print0 \ | while IFS= read -r -d $'\0' ; do echo "$REPLY" ; done สิ่งนี้ไม่ได้ผล: for file in * ; do echo -n "$file"$'\0' ; done \ | while IFS= …
32 bash  null 

1
ทำไมไม่อ่านจาก / dev / ศูนย์นับเป็น IO_RBYTES
ฉันกำลังล้างฮาร์ดไดรฟ์ในระบบปฏิบัติการ Linux 4.x บางตัวโดยใช้คำสั่งนี้: sudo sh -c 'pv -pterb /dev/zero > /dev/sda' และฉันเปิดอีก tty และเริ่มsudo htopและสังเกตเห็นสิ่งนี้: PID USER PRI NI CPU% RES SHR IO_RBYTES IO_WBYTES S TIME+ Command 4598 root 20 0 15.5 1820 1596 4096 17223823 D 1:14.11 pv -pterb /dev/zero ค่าสำหรับIO_WBYTESดูเหมือนค่อนข้างปกติ แต่IO_RBYTESยังคงอยู่ที่ 4 KiB และไม่เคยเปลี่ยนแปลง ฉันรันโปรแกรมอื่นสองสามตัวอย่างเช่น dd if=/dev/zero …
25 linux  devices  io  null 

3
mv ไฟล์ไปยัง / dev / null แบ่ง dev / null
ถ้าฉันทำ: touch file; mv file /dev/nullเป็นราก/dev/nullหายไป ls -lad /dev/nullส่งผลให้ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว แบ่งการใช้งานนี้ซึ่งขึ้นอยู่กับ/dev/nullเช่น SSH mknod /dev/null c 1 3; chmod 666 /dev/nullและสามารถแก้ไขได้โดยการทำ ทำไมการย้ายไฟล์ปกติไปยังไฟล์พิเศษนี้ส่งผลให้หายไป/dev/null? เพื่อชี้แจงนี่คือเพื่อวัตถุประสงค์ในการทดสอบและฉันเข้าใจว่าmvคำสั่งทำงานอย่างไร สิ่งที่ฉันอยากรู้คือทำไมls -la /dev/nullก่อนที่จะแทนที่ด้วยไฟล์ปกติจะแสดงผลลัพธ์ที่คาดหวัง แต่หลังจากนั้นมันก็แสดงว่า/dev/nullไม่มีอยู่แม้ว่าไฟล์นั้นจะถูกสร้างขึ้นผ่านmvคำสั่งดั้งเดิมและคำสั่ง file แสดงข้อความ ASCII ฉันคิดว่านี่ต้องเป็นการรวมกันของlsพฤติกรรมคำสั่งร่วมกับdevfsเมื่อไฟล์ที่ไม่ใช่พิเศษมาแทนที่อักขระ / ไฟล์พิเศษ นี่คือบน Mac OS X พฤติกรรมอาจแตกต่างกันไปตามระบบปฏิบัติการอื่น
25 osx  devices  null 

2
ทำไม tar ดูเหมือนจะข้ามเนื้อหาไฟล์เมื่อไฟล์ที่ส่งออกเป็น / dev / null?
ฉันมีไดเรกทอรีที่มีข้อมูลมากกว่า 400 GiB ฉันต้องการตรวจสอบว่าไฟล์ทั้งหมดสามารถอ่านได้โดยไม่มีข้อผิดพลาดดังนั้นวิธีที่ง่าย ๆ ที่ฉันคิดก็คือการนำtarไป/dev/nullใช้ แต่ฉันกลับเห็นพฤติกรรมต่อไปนี้แทน: $ time tar cf /dev/null . real 0m4.387s user 0m3.462s sys 0m0.185s $ time tar cf - . > /dev/null real 0m3.130s user 0m3.091s sys 0m0.035s $ time tar cf - . | cat > /dev/null ^C real 10m32.985s user 0m1.942s sys 0m33.764s …
21 tar  null 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.