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

การจัดการไฟล์: การคัดลอกการเปลี่ยนชื่อการค้นหาการวิเคราะห์การเก็บถาวรและอื่น ๆ สำหรับการใช้งานกับข้อความในไฟล์ดู / การประมวลผลข้อความ สำหรับคำถามเกี่ยวกับตัวจัดการไฟล์ของ Files (ชื่อเดิม Nautilus) ให้ดู / nautilus

7
จะสร้างไฟล์ขนาดใหญ่ใน UNIX ได้อย่างไร?
ฉันพบวิธีใน Windows ในการทำสิ่งนั้น echo "This is just a sample line appended to create a big file. " > dummy.txt for /L %i in (1,1,21) do type dummy.txt >> dummy.txt http://www.windows-commandline.com/how-to-create-large-dummy-file/ มีวิธีใดใน UNIX ที่จะคัดลอกไฟล์ผนวกและทำซ้ำกระบวนการหรือไม่? สิ่งที่ชอบfor .. cat file1.txt > file1.txt?
17 shell  files 

2
อนุญาตให้เจ้าของสร้าง & อ่านไฟล์ แต่ไม่แก้ไขหรือลบ
ฉันต้องการให้สิทธิ์ผู้ใช้ในการสร้างและอ่านไฟล์ในไดเรกทอรีเฉพาะ แต่ไม่สามารถแก้ไขหรือลบไฟล์ได้ หากผู้ใช้สามารถต่อท้ายไฟล์ที่ใช้ได้ แต่ฉันไม่ต้องการ นี่คือบน Ubuntu Linux ฉันคิดว่ามันเป็นไปไม่ได้ด้วยสิทธิ์ของไฟล์ Unix มาตรฐาน แต่อาจเป็นไปได้ที่ใช้ ACL ผู้ใช้จะเชื่อมต่อโดยใช้ SFTP เสมอดังนั้นหากมีวิธีการควบคุมสิ่งนี้ภายใน SFTP (ตรงข้ามกับสิทธิ์ของระบบปฏิบัติการ) ที่จะใช้ได้ เพื่อให้ชัดเจนอย่างยิ่งฉันต้องการสิ่งต่อไปนี้: echo hello> test # สำเร็จเนื่องจากไม่มีการทดสอบและอนุญาตให้สร้างได้ echo hello >> test # สามารถประสบความสำเร็จหรือล้มเหลวขึ้นอยู่กับว่าอนุญาตให้ผนวกท้ายได้หรือไม่ echo hello2> test # ล้มเหลวเนื่องจากมีการทดสอบอยู่แล้วและไม่อนุญาตให้แก้ไข cat test # สำเร็จเนื่องจากการอ่านได้รับอนุญาต การทดสอบ rm # ล้มเหลวเนื่องจากไม่อนุญาตให้ลบ หากคุณสงสัยว่าทำไมฉันถึงต้องการทำเช่นนี้มันจะทำให้ระบบสำรองข้อมูลของ Duplicati ทนทานต่อ Ransomware
17 linux  files  permissions  acl 

4
ทำไม cat x >> x loop
คำสั่ง bash ต่อไปนี้จะเข้าสู่วง infinte: $ echo hi > x $ cat x >> x ฉันเดาได้ว่าcatอ่านต่อไปxหลังจากเริ่มเขียนไปยัง stdout แล้ว อย่างไรก็ตามสิ่งที่น่าสับสนคือการทดสอบการใช้งานแมวของฉันแสดงพฤติกรรมที่แตกต่าง: // mycat.c #include <stdio.h> int main(int argc, char **argv) { FILE *f = fopen(argv[1], "rb"); char buf[4096]; int num_read; while ((num_read = fread(buf, 1, 4096, f))) { fwrite(buf, 1, num_read, stdout); fflush(stdout); …

6
วิธีอ่านไฟล์. war
ฉันพยายามดูเนื้อหาของไฟล์. war ฉันได้ตั้งค่าการอนุญาตchmod 777ก่อนแล้วเมื่อฉันพยายามที่จะใช้มันโดยใช้: cd /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/ มันคือการให้cd: /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/: Not a directoryและฉันไม่สามารถดำเนินการต่อไป มีคนช่วยฉันได้ไหมในเรื่องนี้?

3
ย้ายไฟล์และลบไดเรกทอรีด้วย rsync หรือไม่
เมื่อเร็ว ๆ นี้ฉันต้องการลบไฟล์จำนวนมาก (มากกว่า 1 ล้านไฟล์) และฉันได้อ่าน: rsync -av --delete `mktemp -d`/ ~/source && rmdir ~/source rm -rfเป็นหนึ่งในวิธีที่ดีที่สุดมากที่สุดที่จะทำเช่นนั้นและฉันสามารถรับรองว่ามันเร็วกว่า ฉันไม่ใช่ผู้เชี่ยวชาญในเรื่องนี้ แต่จากความเข้าใจของฉันแล้วเหตุผลที่ประสิทธิภาพของ rsync มีบางอย่างที่ต้องทำตามวิธีที่รายการไฟล์ (LIFO แทนที่จะเป็น FIFO ที่ฉันคิดว่า) ตอนนี้ปัญหาคือฉันต้องย้ายไฟล์จำนวนมากด้วยวิธีที่มีประสิทธิภาพ หลังจากค้นหาแล้วฉันก็พบสิ่งนี้: rsync -av --ignore-existing --remove-source-files ~/source ~/destination ขณะนี้ลบทั้งหมดย้ายไฟล์ใน~/sourceไดเรกทอรียังคงมี เนื่องจากฉันมีโครงสร้างไดเรกทอรีคล้ายกับ "round-robin" จำนวนfiles/directoriesใกล้เคียงกับ 1 ดังนั้นฉันจึงถูกบังคับให้เรียกใช้คำสั่งแรกอีกครั้งเพื่อกำจัดไดเรกทอรีทั้งหมด: rsync -av --ignore-existing --remove-source-files ~/source ~/destination && \ rsync -av …

2
ไฟล์ที่เปิดทำงานอย่างไรในระบบลินุกซ์?
ฉันเพิ่งเปลี่ยนชื่อไฟล์บันทึกเป็น "foo.log.old" และสันนิษฐานว่าแอปพลิเคชันจะเริ่มเขียนไฟล์บันทึกใหม่ที่ "foo.log" ฉันประหลาดใจที่พบว่ามันติดตาม logfile ไปยังชื่อใหม่และเก็บบรรทัดต่อท้ายไว้ที่ "foo.log.old" ใน Windows ฉันไม่คุ้นเคยกับพฤติกรรมแบบนี้ - ฉันไม่รู้ว่าเป็นไปได้หรือไม่ที่จะนำไปใช้ พฤติกรรมนี้นำมาใช้อย่างแน่นอนใน linux อย่างไร ฉันจะเรียนรู้เพิ่มเติมเกี่ยวกับมันได้ที่ไหน

6
ฉันจะย่อเส้นทางไดเรกทอรีปัจจุบันที่แสดงบนเทอร์มินัลได้อย่างไร
ถ้าฉันอยู่ในไดเรกทอรีลึกสมมติว่า: ~/Desktop/Dropbox/School/2017/C/A3/ เมื่อฉันเปิดสถานีมันก็บอกว่า bob@bob-ubuntu:~/Desktop/Dropbox/School/2017/C/A3/$ จากนั้นฉันก็เขียนคำสั่งของฉัน นั่นยาวมากและทุกบรรทัดที่ฉันเขียนในเทอร์มินัลจะไปที่บรรทัดถัดไป ฉันต้องการทราบว่ามีวิธีการหรือไม่ที่จะแสดงเฉพาะไดเรกทอรีปัจจุบันของฉัน ฉันต้องการให้มันแสดง: bob@bob-ubuntu: A3/$ วิธีนี้ชัดเจนมากและฉันสามารถpwdดูไดเรกทอรีทั้งหมดของฉันได้ตลอดเวลา ฉันไม่ต้องการให้ไดเรกทอรีทั้งหมดปรากฏในเทอร์มินัลเพราะใช้พื้นที่มากเกินไป

3
ความสัมพันธ์ใดที่ผูกหน้ากาก ACL และสิทธิ์กลุ่มมาตรฐานไว้ในไฟล์
ตอนแรกฉันสร้างไฟล์และตรวจสอบว่าเป็นสิทธิ์มาตรฐานและรายการ ACL: $ touch file; ls -l file; getfacl file -rw-r--r-- 1 user user 0 Jul 30 16:26 file # file: file # owner: user # group: user user::rw- group::r-- other::r-- จากนั้นฉันจะตั้งค่าหน้ากาก ACL บนไฟล์และตรวจสอบอีกครั้งว่าเป็นสิทธิ์มาตรฐานและรายการ ACL: $ setfacl -m mask:rwx file $ ls -l file; getfacl file -rw-rwxr--+ 1 user user …
17 files  permissions  acl 

5
วิธีรับขนาดโฟลเดอร์โดยไม่สนใจการเชื่อมโยงอย่างหนัก
ฉันใช้ rsnapshot สำหรับการสำรองข้อมูลซึ่งสร้างชุดของโฟลเดอร์ที่มีไฟล์ชื่อเดียวกัน ไฟล์บางไฟล์เชื่อมโยงกันอย่างหนักในขณะที่ไฟล์อื่นแยกออกจากกัน ตัวอย่างเช่นhourly.1/file1และhourly.2/file1อาจเชื่อมโยงอย่างหนักกับไฟล์เดียวกันในขณะที่hourly.1/file2และhourly.2/file2เป็นไฟล์ที่แยกจากกันโดยสิ้นเชิง ฉันต้องการค้นหาจำนวนพื้นที่ที่โฟลเดอร์ใช้เพื่อhourly.2 เพิกเฉยต่อไฟล์ใด ๆ ที่เป็นลิ้งค์ไปยังไฟล์hourly.1ต่างๆ ดังนั้นในตัวอย่างข้างต้นฉันอยากได้ขนาดของ file2 แต่ไม่สนใจ file1 ฉันใช้ bash บน linux และฉันต้องการทำสิ่งนี้จากบรรทัดคำสั่งให้ง่ายที่สุดเท่าที่จะทำได้ดังนั้นจึงไม่มีโซลูชันกราฟิกหรือระบบปฏิบัติการอื่น ๆ

3
วิธีการบังคับให้เขียนทับไดเรกทอรีที่ไม่ว่างโดยใช้ `mv`
ฉันต้องการย้าย (ไม่ใช่เพียงแค่คัดลอก) กลุ่มของไฟล์ / ไดเรกทอรีไปยังไดเรกทอรีอื่นซึ่งบางส่วนมีชื่อที่ขัดแย้งกับไฟล์ / ไดเรกทอรีในไดเรกทอรีเป้าหมาย วัตถุประสงค์หลักของฉันคือการย้ายไฟล์ดังนั้นฉันสามารถทนต่อไดเรกทอรีที่ไม่ว่างที่ถูกเขียนทับ ฉันกำลังใช้mv ... destinationอย่างไรก็ตามบางครั้งฉันได้รับ mv: ไม่สามารถย้าย `target 'ไปยัง / destination / target': ไดเรกทอรีไม่ว่างเปล่า ฉันพยายามmv -f ... destinationไม่ประสบความสำเร็จและเนื่องจากฉันต้องการให้ไฟล์หายไปจากตำแหน่งเดิมrsyncดูเหมือนจะไม่เหมาะสม เป็นโบนัสมีวิธีแก้ไขปัญหาที่ดีสำหรับการรักษาไฟล์ที่ตั้งใจจะเขียนทับด้วยการเปลี่ยนชื่อหรือไม่?
17 files  rsync  rename 

5
เป็นไปได้ไหมที่จะบีบอัดไฟล์ที่มีขนาดใหญ่มาก (~ 30 GB) โดยใช้ gzip?
เป็นไปได้ไหมที่จะบีบอัดไฟล์ที่มีขนาดใหญ่มาก (~ 30 GB) โดยใช้ gzip? ถ้าเป็นเช่นนั้นฉันควรใช้คำสั่งสวิตช์และตัวเลือกใด หรือมีโปรแกรมอื่น (โดยเฉพาะอย่างยิ่งหนึ่งที่มีอยู่ทั่วไปในการแจกแจง Ubuntu) ที่ฉันสามารถใช้ในการบีบอัด / zip ไฟล์ที่มีขนาดใหญ่มาก? คุณมีประสบการณ์เกี่ยวกับสิ่งนี้หรือไม่?


1
/lib64/ld-linux-x86-64.so.2 คืออะไรและทำไมจึงสามารถใช้เพื่อเรียกใช้ไฟล์ได้
เร็ว ๆ /lib64/ld-linux-x86-64.so.2นี้ผมได้เรียนรู้เคล็ดลับว่าถ้าไฟล์ที่ขาดสิทธิ์ปฏิบัติการเราสามารถเรียกใช้ไฟล์ว่าด้วยการใช้ ตัวอย่างเช่นในการกู้คืนสิทธิ์ x สำหรับ -rw-r--r-- 1 root root 59K Mar 1 2017 /bin/chmod เราสามารถวิ่งได้ /lib64/ld-linux-x86-64.so.2 /bin/chmod +x /bin/chmod ฉันไม่รู้จริง ๆ ว่ามันสามารถทำได้มันไม่ใช่ของปรกติลึกลับชนิดไหน
17 linux  files  libraries 

4
จะแทนที่ช่องว่างในชื่อไฟล์ทั้งหมดด้วยเครื่องหมายขีดล่างใน Linux โดยใช้เชลล์สคริปต์ได้อย่างไร
ฉันลองต่อไปนี้เชลล์สคริปต์ซึ่งควรแทนที่ช่องว่างจากชื่อไฟล์ xml ทั้งหมด for xml_file in $(find $1 -name "* .xml" -type f); do echo "removing spaces from XML file:" $xml_file mv "$xml_file" "${xml_file// /_}"; done สมมติว่าฉันมีไฟล์ xml ที่มีชื่อxy z.xmlจากนั้นจะให้: removing spaces from XML file: /home/krishna/test/xy mv: cannot stat `/home/krishna/test/xy': No such file or directory removing spaces from XML file: …

3
สำรองและคืนค่าการอนุญาตของไฟล์
มีวิธีการสำรองและกู้คืนความเป็นเจ้าของไฟล์และการอนุญาต (สิ่งที่สามารถเปลี่ยนแปลงได้ด้วยchownและchmod)? คุณสามารถทำเช่นนี้ใน Windows ใช้ icacls สิ่งที่เกี่ยวกับรายการควบคุมการเข้าถึง?

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