ฉันจะซ่อนไดเรกทอรีหรือไฟล์โดยไม่เปลี่ยนชื่อได้อย่างไร


51

OCD ในฉันต้องการไดเรกทอรีที่ฉันไม่ชอบชื่อที่จะซ่อนเนื่องจากฉันไม่ได้โต้ตอบกับพวกเขาโดยตรง

ฉันจะซ่อนไดเรกทอรีโดยไม่ใช้เครื่องหมายจุดได้อย่างไร

คำตอบ:


79

สมมติว่าคุณสนใจที่จะซ่อนไฟล์ไม่ให้แสดงในรูปหอยโข่งมีข้อผิดพลาดใน GNOME Bugzilla เกี่ยวกับสิ่งนี้ อย่างไรก็ตามในปัจจุบันข้อผิดพลาดนั้นยังไม่ได้รับการแก้ไข

มีวิธีอื่นในการซ่อนไฟล์ไม่ให้ปรากฏในหอยโข่ง หากคุณสร้างไฟล์ชื่อ.hiddenภายในไดเรกทอรีชื่อไฟล์ใด ๆ ที่อยู่ในไฟล์จะไม่ปรากฏขึ้น

ตัวอย่างเช่นด้านล่างเป็นไฟล์. hidden ที่ฉันสร้างขึ้น ไฟล์นี้จะซ่อนไฟล์หรือโฟลเดอร์ใด ๆ ที่มีชื่อbหรือeอยู่ในไดเรกทอรีเดียวกันกับไฟล์. hidden

ตัวอย่างไฟล์. hidden

ด้านล่างเป็นภาพหน้าจอของโฟลเดอร์ที่มีไฟล์. hidden โปรดทราบว่าคุณจะเห็นเพียงสามไฟล์: a, และc fคุณไม่เห็นไฟล์. hidden เนื่องจาก '.' ที่จุดเริ่มต้นของชื่อ ตัวอย่างโฟลเดอร์

ภาพหน้าจอด้านล่างเป็นโฟลเดอร์เดียวกับเมื่อก่อน อย่างไรก็ตามในครั้งนี้ฉันกดCtrl+ Hเพื่อให้หอยโข่งแสดงไฟล์และโฟลเดอร์ที่ซ่อนอยู่ สังเกตว่ามีไฟล์เพิ่มเติมหลายไฟล์ที่แสดงขึ้นมาอย่างไร ขณะนี้คุณเห็นไฟล์หลายไฟล์ที่ถูกซ่อนไว้ก่อนหน้านี้เนื่องจากมีชื่อที่ขึ้นต้นด้วย '.' นอกจากนี้ยังมีไฟล์ที่เรียกว่า 'b' และ 'e' ซึ่งแม้ว่าจะไม่มีชื่อขึ้นต้นด้วย '.' ก็ถูกซ่อนไว้เนื่องจากมีการระบุไว้ในไฟล์. hidden

ตัวอย่างโฟลเดอร์ที่มองเห็นไฟล์ที่ซ่อนอยู่

ไฟล์ที่กล่าวถึงในไฟล์. hidden จะถูกซ่อนเฉพาะในหอยโข่งเท่านั้น เครื่องมือเช่นlsจะยังคงแสดงพวกเขา ไฟล์. hidden ยังไม่เรียกซ้ำ มันจะมีผลกับไฟล์ในไดเรกทอรีเดียวกับไฟล์. hidden ที่อยู่ใน

บางคนในฟอรัมได้ไปข้างหน้าและสร้างสคริปต์สำหรับ nautilus ที่ทำให้ง่ายต่อการเพิ่มไฟล์ลงในไฟล์. hidden สคริปต์แรกที่มีคำอธิบายที่ดีเกี่ยวกับวิธีการติดตั้งและการใช้สคริปต์ แต่สคริปต์ที่สองเป็นบิตทำความสะอาดและสั้น อย่าลังเลที่จะใช้สคริปต์เพื่อทำให้ชีวิตของคุณง่ายขึ้นเล็กน้อย


+1 เพียงแค่ทราบถ้าคุณคิดว่าคุณต้องเพิ่ม'ชื่อไฟล์หรือโฟลเดอร์ที่มีช่องว่าง `` มันไม่ได้ เพียงเพิ่มไฟล์หรือชื่อโฟลเดอร์
Anwar

13

Unix และ Linux .เท่านั้นสนับสนุนซ่อนตัวอยู่โฟลเดอร์ที่ถูกด้วย

หากคุณต้องการพาพวกเขาออกไปให้พ้นทาง แต่ต้องการให้พวกเขาไม่มี.s ให้ใส่พวกมันทั้งหมดไว้.hiddenในไดเรกทอรีเดียวกันกับไฟล์หรือโฟลเดอร์ที่คุณต้องการซ่อน .hiddenจะไม่ถูกเปิดเผยโดยตัวจัดการไฟล์และไฟล์ของคุณจะไม่มีการเปลี่ยนชื่อ


1
ผมจึงอยากจะให้พวกเขาในสถานที่เดียวกัน :)
myusuf3

1
วิธีนี้จะทำให้พวกเขาอยู่ในที่เดียวกัน . Hidden ไม่จำเป็นต้องอยู่ในโฟลเดอร์บ้านของคุณหากคุณไม่ต้องการให้มันเป็น ฉันมักจะใช้กับไดรฟ์แบบถอดได้ที่มีไฟล์ปรับแต่งที่ฉันไม่ต้องการเห็น
jumpnett

1
@jumpnett ถูกต้องวาง. hidden ในตำแหน่งเดียวกับไฟล์ที่คุณต้องการซ่อนและเพิ่มชื่อไฟล์ / ไดเรกทอรีในไฟล์. hidden หนึ่งรายการต่อบรรทัด ใช้งานได้ดี!
กลับ

3

จากบรรทัดคำสั่งคุณสามารถลองสิ่งนี้ใน.bash_aliasesไฟล์ของคุณ:

lsh() {
    [ -s .hidden ] && echo "lsh: hiding $(wc -l .hidden) patterns" && ls $@ | grep -v -F "$(cat .hidden)";
    [ ! -f .hidden ] && ls $@
}

สิ่งนี้จะเพิ่มคำสั่งใหม่lshที่ทำงานเหมือนlsแต่ซ่อนไฟล์ที่อยู่ใน.hiddenไดเรกทอรี (นอกจากนี้ยังขาดคุณสมบัติบางอย่างเช่นเอาต์พุต colorized และรายการคอลัมน์)


2

หากคุณต้องการซ่อนไฟล์คุณจะเหลือเพียงการเปลี่ยนชื่อไฟล์เหล่านั้นด้วยการทำก่อนหน้า.เช่นเดียวกับการประชุม * NIX ขออภัย แต่นั่นมัน

อย่างไรก็ตามหากคุณต้องการซ่อนเนื้อหาของไฟล์ / ไดเรกทอรีคุณสามารถทำได้ด้วยการอนุญาตไฟล์

สมมติว่าคุณมีไฟล์จำนวนมากในโฟลเดอร์ที่เรียกว่าsecret_stashคุณสามารถเปลี่ยนแปลงได้เพื่อให้มีเพียงคุณ (เจ้าของ) เท่านั้นที่มีr-x(อ่านดำเนินการ) และทุกคนไม่มีอะไร---(ไม่มีการเข้าถึง) ตั้งแต่r-xเป็น perms ขั้นต่ำที่จำเป็นในการดูไดเรกทอรี (อ่านเข้าถึงเนื้อหาและการดำเนินการที่จะสามารถที่จะเห็นพวกเขา) อะไรภายในของโฟลเดอร์ที่ซ่อนอยู่ได้อย่างมีประสิทธิภาพจากทุกคน rootแต่

หมายเหตุ : ฉันใช้การสาธิตนี้เป็นrootและพยายามเข้าถึงโฟลเดอร์ในฐานะmyuser

เมื่อต้องการทำสิ่งนี้ให้คุณเรียกใช้chmod 700 dirname(700 หมายถึงrwx------):

% mkdir secret_stash
% chmod 700 secret_stash

และนี่คือ:

% whoami
root
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash  
./  ../  secret.txt
% cat secret_stash/secret.txt 
TOP SECRET DATA

ตอนนี้และถ้าฉันพยายามที่จะเข้าถึงมันจากmyuserความพยายามที่จะเข้าถึงโฟลเดอร์หรือเนื้อหาของมันล้มเหลว:

% whoami
myuser
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash 
ls: cannot open directory secret_stash: Permission denied
% cat secret_stash/secret.txt
cat: secret_stash/secret.txt: Permission denied

และตอนนี้ฉันได้พูดคำว่า "ความลับ" หลายครั้งมันหายไปหมดความหมายทั้งหมด !!


2
คุณสามารถทำให้มันถูกซ่อนอยู่จริงๆchmod -R 000 secret_stashจากนั้นจะไม่มีใครสามารถอ่านได้!
Marco Ceppi

@Marco Ceppi - สุดยอดความปลอดภัย!
jathanism

แน่นอนว่านี่คือ "ความปลอดภัย" มากกว่า "ความสับสน" - ซึ่งเป็นสิ่งที่ OP มองหาฉันคิดว่า;)
Marco Ceppi

2
@MarcoCeppi: chmod 000 จะซ่อนไฟล์จากแม้กระทั่งเจ้าของไฟล์ยกเว้น root ที่สามารถข้ามได้ 000 ครั้ง แต่เจ้าของไฟล์ยังคงสามารถเปลี่ยนสิทธิ์ในการอ่านไฟล์ได้ดังนั้นคุณต้อง เปลี่ยนความเป็นเจ้าของของไฟล์เป็นรูทเพื่อให้การอนุญาต 3,000 รายการมีความหมายจริงๆ
โกหกไรอัน

2

1 ปิด: ถ้าคุณต้องการที่จะซ่อนไฟล์จากทุกคน: ติดตั้งลินุกซ์ระบบตรวจจับการบุกรุก ( Snortเป็นตัวอย่าง) คุณสามารถซ่อนไฟล์จาก "root" แต่ "root" จะสามารถเปลี่ยนการตั้งค่าเหล่านั้นได้


แต่มันอาจจะง่ายกว่าถ้าคุณตั้งค่าการอนุญาตของไดเรกทอรีที่เก็บไฟล์ไว้ที่ "root" ตัวอย่าง:

 $ sudo su
 # mkdir tmp/
 # touch tmp/1
 # chown root:root tmp
 # chmod 000 tmp  
 # ls -l
total 4
d--------- 2 root root 4096 2015-08-07 06:36 tmp  
 # exit
exit
 $ ls
tmp
 $ cd tmp/
bash: cd: tmp/: Permission denied

และไฟล์1นั้นถูกซ่อนอย่างมีประสิทธิภาพจากการดู

ไดเรกทอรีจะสามารถมองเห็นได้; ไฟล์จะไม่สามารถมองเห็นได้ โปรดทราบว่า: "root" จะสามารถเข้าถึงไฟล์ใด ๆ ได้เสมอ


chattrคุณสามารถสร้างไฟล์ที่ไม่เปลี่ยนรูปแบบร่วมกับคุณได้

sudo su    
chattr + i {file}

และแม้แต่ "รูท" ก็ไม่สามารถแก้ไขไฟล์ได้ - ยกเว้น - ที่chattrถูกเปลี่ยนกลับ (และใช่ "รูท" สามารถทำเช่นนั้นได้)

แป้นพิมพ์ลัดใด ๆ

ไม่นี่เป็นสิ่งที่คุณต้องทำด้วยตนเอง


0

นอกจากนี้ยังมีส่วนขยายสำหรับ Nautilus ที่เรียกว่าnautilus-hideซึ่งจะช่วยให้คุณสามารถซ่อนไฟล์หรือโฟลเดอร์ใด ๆ ด้วยการคลิกขวาง่ายๆ

ในการติดตั้งส่วนขยายนี้: sudo apt-get install nautilus-hideในเทอร์มินัลหรือค้นหา "nautilus hide" ใน Ubuntu Software Center

อย่าลืมที่จะเลิก Nautilus หลังจากการติดตั้ง: Alt+ และประเภทF2nautilus -q

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