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

โครงสร้างระบบไฟล์ที่ใช้เก็บไฟล์คอมพิวเตอร์

3
เหตุใดโปรแกรม unix mv จึงไม่ต้องการตัวเลือก -R (แบบเรียกซ้ำ) สำหรับไดเรกทอรี แต่ cp ไม่จำเป็นต้องใช้?
ฉันมักจะสับสนเมื่อจำเป็นต้องใช้cpหรือmv: "ฉันต้องการ-Rตัวเลือกเมื่อทำงานกับ dir หรือไม่" ใน GNU coreutils cpไม่ต้องการ-Rและmvไม่ทำ ฉันไม่สามารถหาเหตุผลว่าทำไมcpต้องมี-Rตัวเลือกสำหรับการคัดลอก dirs และmvไม่ ฉันคิดว่าการที่cpdirs ไม่มี-R(แต่ทำตัวซ้ำ ๆ เหมือนมี-Rและชอบmvทำ) จะไม่ทำให้เกิดปัญหาใด ๆ ยกเว้นการทำลายนิสัยของใครบางคนในการใช้เครื่องมือ คุณรู้คำอธิบายใด ๆ ? อาจจะมีเหตุผลมานานแล้ว? คำถามเพิ่มเติม: เหตุใดนักพัฒนา coreutils จึงไม่ทำcpสำเนาซ้ำโดยปริยาย
58 directory  rename  cp 

5
cd โดยเพียงพิมพ์ชื่อไดเรกทอรี?
ฉันมีสิ่งนี้เมื่อ 20 ปีก่อนหรือฉันฝันเกี่ยวกับมัน โดยทั่วไป: ถ้าblobblobฉันพิมพ์ blobblob: command not found ยุติธรรมพอสมควร ฉันต้องการมันเพื่อให้เมื่อเปลือกของฉันได้รับข้อผิดพลาด - ไม่พบคำสั่ง - มันจะตรวจสอบเพื่อดูว่ามีไดเรกทอรีที่มีชื่อนั้น ('blobblob') หรือไม่และถ้ามันcdเป็นไดเรกทอรีนั้น ฉันแน่ใจว่ามีเหตุผลบางอย่างที่จะไม่ทำเช่นนี้หรือทำอย่างระมัดระวัง ฉันคิดว่ามันจะค่อนข้างเรียบร้อยและฉันอยากลองโดยการค้นหาว่าที่ไหนสักแห่ง (เช่นที่นี่!) ฉันไม่ทราบวิธีการเขียนโปรแกรม kinda shell ซึ่งอาจบอกเป็นนัย

3
วิธีการสร้างไดเรกทอรีต้นไม้เอาท์พุทเท่านั้น?
150 ไดเรกทอรีที่ฉันสามารถจัดการได้ แต่ 900 ไฟล์มีมากเกินไปสำหรับการตรวจสอบ ฉันไม่มีรายการบันทึกด้วยตนเองtreeดังนั้นฉันอาจถามคุณว่าคุณรู้วิธีส่งออกเฉพาะไดเรกทอรีหรือไม่เนื่องจากไฟล์มีรายละเอียดมากเกินไป . ├── agreement.htm ├── appengine_admin │ ├── admin_forms.py │ ├── admin_forms.pyc │ ├── admin_settings.py │ ├── admin_settings.pyc │ ├── admin_widgets.py │ ├── admin_widgets.pyc │ ├── authorized.py │ ├── authorized.pyc │ ├── db_extensions.py │ ├── encoding.py │ ├── __init__.py │ ├── __init__.pyc │ ├── media …

3
ความแตกต่างระหว่าง“ cd -” และ“ cd ~ -”
คำสั่ง Bash cd - พิมพ์ไดเรกทอรีที่ใช้ก่อนหน้านี้และเปลี่ยนแปลงไป ในทางกลับกันคำสั่ง Bash cd ~- เปลี่ยนเป็นไดเรกทอรีที่ใช้ก่อนหน้าโดยตรงโดยไม่ต้องสะท้อนอะไรเลย นั่นคือความแตกต่างเท่านั้น? กรณีการใช้งานสำหรับแต่ละคำสั่งคืออะไร?

13
ทรัพยากรที่มีประสิทธิภาพมากที่สุดในการนับจำนวนไฟล์ในไดเรกทอรีคืออะไร?
CentOS 5.9 ฉันเจอปัญหาเมื่อวันก่อนที่ไดเรกทอรีมีไฟล์จำนวนมาก เมื่อต้องการนับฉันวิ่งls -l /foo/foo2/ | wc -l ปรากฎว่ามีมากกว่า 1 ล้านไฟล์ในไดเรกทอรีเดียว (เรื่องยาว - สาเหตุที่แท้จริงได้รับการแก้ไข) คำถามของฉันคือ: มีวิธีที่เร็วกว่าในการนับหรือไม่ อะไรจะเป็นวิธีที่มีประสิทธิภาพที่สุดในการนับ?
55 bash  shell  directory  ls 

5
ฉันจะลบไดเรกทอรีย่อยทั้งหมดออกจากภายในไดเรกทอรีได้อย่างไร
คำถามนี้เป็นเฟสที่สองของคำถามแรกที่ฉันโพสต์ที่นี่ ฉันมีไดเรกทอรีที่มีกลุ่มของไดเรกทอรีย่อยไฟล์. zip และไฟล์สุ่มอื่น ๆ ที่ไม่อยู่ในไดเรกทอรีย่อย ฉันต้องการสคริปต์บรรทัดคำสั่งเพื่อลบไดเรกทอรีย่อยทั้งหมดออกจากภายในไดเรกทอรีหลัก แต่เก็บไฟล์ zip และไฟล์ทั้งหมดที่ไม่ได้อยู่ในไดเรกทอรีย่อยใด ๆ ไดเรกทอรีย่อยทั้งหมดมีเนื้อหาดังนั้นฉันเชื่อว่าฉันต้องบังคับให้ลบด้วยคำสั่ง -f ดังนั้นโดยทั่วไปคำสั่งที่มีลักษณะอยู่ในไดเรกทอรีหลัก (หรือไดเรกทอรีปัจจุบัน) จะลบโฟลเดอร์ทั้งหมดออกจากภายใน แต่จะเก็บเนื้อหาและไฟล์อื่น ๆ ทั้งหมดที่ไม่ใช่โฟลเดอร์หรืออยู่ในโฟลเดอร์ ฉันเข้าใจว่าการลบรายการออกจากบรรทัดคำสั่งจำเป็นต้องได้รับการดูแลเป็นพิเศษ แต่ฉันได้ใช้ความระมัดระวังที่จำเป็นทั้งหมดแล้วในการสำรองข้อมูลจากระยะไกล

2
ทำไม '.' ลิงค์ยากใน Unix?
ฉันเห็นคำอธิบายมากมายว่าเหตุใดลิงก์จึงนับเป็นไดเรกทอรีว่างในระบบปฏิบัติการ Unix ที่ใช้เป็น 2 แทนที่จะเป็น 1 พวกเขาทั้งหมดบอกว่าเป็นเพราะ '' ' ไดเรกทอรีซึ่งทุกไดเรกทอรีมีตัวชี้กลับไปเอง ฉันเข้าใจว่าทำไมการมีแนวคิด '.' มีประโยชน์สำหรับการระบุพา ธ ที่เกี่ยวข้อง แต่สิ่งที่ได้รับจากการใช้มันในระดับระบบไฟล์? ทำไมไม่เพียงแค่มีเชลล์หรือการเรียกระบบที่ใช้พา ธ รู้วิธีตีความมัน นั่นคือ '.. ' เป็นลิงก์จริงทำให้ฉันมีเหตุผลมากกว่านี้ - ระบบไฟล์จำเป็นต้องเก็บตัวชี้กลับไปยังไดเรกทอรีหลักเพื่อนำทางไปยังมัน แต่ฉันไม่เห็นว่าทำไม '.' การมีลิงค์จริงเป็นสิ่งจำเป็น ดูเหมือนว่ามันจะนำไปสู่กรณีพิเศษที่น่าเกลียดในการนำไปใช้ - คุณคิดว่าคุณสามารถเพิ่มพื้นที่ว่างที่ใช้โดย inodes ที่มีลิงค์นับน้อยกว่า 1 แต่ถ้าเป็นไดเรกทอรีคุณจะต้องตรวจสอบหา ลิงค์นับน้อยกว่า 2 ทำไมต้องมีความไม่ลงรอยกัน?

9
ใช้ sftp เพื่อถ่ายโอนไดเรกทอรีหรือไม่
เมื่อฉันพยายามใช้ sftp เพื่อถ่ายโอนไดเรกทอรีที่มีไฟล์ฉันได้รับข้อความแสดงข้อผิดพลาด: skipping non-regular file directory_name ไดเรกทอรีประกอบด้วยไฟล์จำนวนหนึ่งและสองไดเรกทอรีย่อย ผมทำอะไรผิดหรือเปล่า?

4
ตรวจสอบว่าอุปกรณ์อยู่ในไดเรกทอรีใด
ถ้าฉันทำ # cd / # ln -s /home test # cd test # mount --bind $PWD /mnt รายการใน/proc/mountsคือ /dev/sda2 /mnt ext4 rw,noatime,data=ordered 0 0 ซึ่งเป็นอุปกรณ์ที่ติดตั้งไป/homeและไม่ได้เป็น deducible จากได้อย่างง่ายดายซึ่งเป็น$PWD /testฉันจะทราบได้อย่างไรว่าอุปกรณ์ใด (เช่น / dev / sda2) จะแสดง/proc/mountsโดยทั่วไปเนื่องจาก bind mount นั้นอาจจะอยู่ในไดเรคทอรี / ไฟล์ที่อาจ "บดบัง" โดย symlinks, bind mount อื่น ๆ ฯลฯ ?


3
ค้นหา tmp dir ที่ถูกต้องบนหลาย ๆ แพลตฟอร์ม
ฉันมีสคริปต์ที่ต้องการสร้างไฟล์ชั่วคราวสำหรับการทำงานและล้างข้อมูลหลังจากนั้น คำถามของฉันเกี่ยวกับการค้นหาไดเรกทอรีฐานที่เหมาะสมสำหรับไฟล์ชั่วคราว สคริปต์ต้องทำงานกับหลายแพลตฟอร์ม: Git Bash (Windows), Solaris, Linux, OSX ในแต่ละแพลตฟอร์มไดเรกทอรีชั่วคราวที่ต้องการจะแสดงแตกต่างกัน: Windows: %TMP%(และอาจเป็นไปได้%TEMP%) OSX: $TMPDIR Linux, UNIX: น่าจะเป็น$TMPDIRแต่ดูเหมือนว่าจะไม่มีการตั้งค่าในหลาย ๆ ระบบที่ฉันได้ลอง ดังนั้นในสคริปต์ของฉันฉันเพิ่มแผ่นสำเร็จรูปนี้: if test -d "$TMPDIR"; then : elif test -d "$TMP"; then TMPDIR=$TMP elif test -d /var/tmp; then TMPDIR=/var/tmp else TMPDIR=/tmp fi ดูเหมือนว่าน่าเบื่อเกินไป มีวิธีที่ดีกว่า?

6
cd .. ในโฟลเดอร์รูท
ทำไมcd ..พิมพ์ที่โฟลเดอร์รากไม่เตือนหรือล้มเหลวด้วยข้อผิดพลาด? ฉันคาดหวัง: /$ cd .. -bash: cd: ..: No such file or directory ฉันกลับไป/แล้ว ของหลักสูตรนี้คือเนื่องจาก..ไม่อยู่ใน/และเป็นเพียงเช่นเดียวกับ/ .ฉันแค่สงสัยว่าทำไมมันเป็นเช่นนั้น

4
มีวิธีใดที่จะป้องกันการลบไฟล์บางไฟล์จากไดเรกทอรีของผู้ใช้หรือไม่?
สมมติว่าผู้ใช้มีDirectory1และมีFile1 File2 CantBeDeletedFile วิธีการทำเช่นนั้นผู้ใช้จะไม่ได้รับอนุญาตให้ลบCantBeDeletedFile ? หากฉันเปลี่ยนความเป็นเจ้าของDirectory1และลบสิทธิ์การเขียนผู้ใช้จะไม่สามารถลบไฟล์ใด ๆ พวกเขายังไม่สามารถเพิ่มไฟล์ใหม่เป็นต้น ฉันแค่ต้องการที่จะสามารถตั้งค่าบางไฟล์ที่จะไม่ถูกลบ คำอธิบายที่เฉพาะเจาะจงมากขึ้น ฉันกำลังสร้างโปรไฟล์ผู้ใช้ ฉันกำลังสร้างไฟล์เปิดโปรแกรมของพวกเขาในสก์ท็อป ดังนั้นฉันต้องการตั้งค่าตัวเรียกใช้งานไฟล์ (.desktop) และทำให้พวกเขาเพื่อให้ผู้ใช้สามารถเปิดใช้งานได้เท่านั้นและพวกเขาไม่สามารถเปลี่ยนชื่อหรือลบได้เพียงแค่เรียกใช้ ปัจจุบันหากผู้ใช้เป็นเจ้าของไดเรกทอรีซึ่งมีไฟล์ใด ๆ เขาสามารถลบได้ หากไม่มีวิธีทั่วไปสำหรับ * nix ทั้งหมดแสดงว่าเป็น Linux และ ext4 FS

2
ทำไมฉันไม่สามารถลบ '.' ไดเรกทอรี?
ฉันพยายามลบ '.' ไดเรกทอรี ฉันคิดว่าฉันสามารถลบไดเรกทอรีการทำงานของฉันได้โดยไม่ต้องไปที่ไดเรกทอรีหลัก ประเด็นคำถามของฉันคือการค้นหาข้อมูลเชิงลึกเกี่ยวกับวิธีที่ระบบ linux ทำงานเพื่อลบไฟล์

9
วิธีลบไดเรกทอรีที่ไม่สามารถลบได้นี้
ฉันยกเลิกการติดตั้งไฟล์ tar ที่เสียหายและจัดการเพื่อจบลงด้วยไดเรกทอรีบางอย่างที่ฉันไม่สามารถลบได้ถ้าฉันพยายามลบมันดูเหมือนว่าหาไม่พบ แต่lsแสดงว่ามันมีอยู่ทั้งทุบตีและหลามด้วย ลักษณะการทำงานที่คล้ายกันยกเว้นขวาหลังจากที่ฉันพยายามที่จะลบมันด้วยrm -rf, lsบ่นไม่สามารถหามันแล้วมันจะแสดงรายการมัน (ดูด้านล่างหลังrm -rf) findคำสั่งแสดงไฟล์ที่เป็นปัจจุบัน แต่ยังคงฉันไม่สามารถคิดวิธีที่จะลบมัน นี่คือความพยายามของฉัน: ที่นี่คุณเห็นlsและfindเห็นด้วยเรามีไดเรกทอรี rl]$ ls mikeaâ??cnt rl]$ find -maxdepth 1 -type d -empty -print0 ./mikeaâcnt แต่ฉันไม่สามารถลบได้: rl]$ find -maxdepth 1 -type d -empty -print0 | xargs -0 rm -f -v rm: cannot remove `./mikeaâ\302\201\302\204cnt': Is a directory rl]$ ls mikeaâ??cnt …
40 files  directory  nfs  rm 

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