Bagaimana saya bisa menyembunyikan direktori atau file tanpa mengubah nama mereka?

51

OCD di dalam saya menginginkan direktori yang saya tidak suka namanya disembunyikan karena saya tidak berinteraksi dengan mereka secara langsung.

Bagaimana saya bisa menyembunyikan direktori tanpa menggunakan notasi titik?

myusuf3
sumber

Jawaban:

79

Dengan asumsi Anda hanya peduli menyembunyikan file agar tidak muncul di nautilus, ada bug di Bugzilla GNOME tentang ini. Namun, saat ini, bug itu belum teratasi.

Ada cara lain untuk menyembunyikan file agar tidak muncul di nautilus. Jika Anda membuat file yang disebut .hiddendi dalam direktori, nama file apa pun yang tercantum dalam file tidak akan ditampilkan.

Misalnya, di bawah ini adalah file .hidden yang saya buat. File ini akan menyembunyikan file atau folder apa pun yang bernama batau eterletak di direktori yang sama dengan file .hidden.

Contoh .hidden File

Di bawah ini adalah tangkapan layar folder yang berisi file .hidden. Perhatikan bahwa Anda hanya melihat tiga file: a, c, dan f. Anda tidak melihat file .hidden karena '.' di awal namanya. Folder Contoh

Tangkapan layar di bawah ini dari folder yang sama seperti sebelumnya. Namun, kali ini, saya menekan Ctrl+ Huntuk menyebabkan nautilus menampilkan file dan folder tersembunyi. Perhatikan bagaimana ada beberapa file tambahan yang muncul. Anda sekarang melihat beberapa file yang sebelumnya disembunyikan karena memiliki nama yang dimulai dengan '.'. Sekarang juga ada file yang disebut 'b' dan 'e', ​​yang walaupun tidak memiliki nama diawali dengan '.', Disembunyikan karena terdaftar dalam file .hidden.

Folder Contoh Dengan File Tersembunyi Terlihat

File yang disebutkan dalam file .hidden hanya akan disembunyikan di nautilus. Alat seperti lsakan tetap menampilkannya. File .hidden juga tidak rekursif. Ini hanya memengaruhi file dalam direktori yang sama dengan file .hidden.

Beberapa orang di forum telah melanjutkan dan membuat skrip untuk nautilus yang membuatnya lebih mudah untuk menambahkan file ke file .hidden. The Script pertama meliputi penjelasan yang bagus tentang cara menginstal dan menggunakan script, tapi naskah kedua adalah sedikit lebih bersih dan lebih pendek. Jangan ragu untuk menggunakan kedua script untuk membuat hidup Anda sedikit lebih mudah.

nhandler
sumber
+1. Hanya sebuah catatan, JIKA Anda pikir Anda harus menambahkan 'nama file atau folder yang berisi `` spasi, itu bukan. Cukup tambahkan nama file atau folder
Anwar
13

Unix dan Linux hanya mendukung folder bersembunyi yang sedang dengan ..

Jika Anda benar-benar ingin mengeluarkannya, tetapi ingin mereka tidak memilikinya ., letakkan semuanya di .hiddendalam direktori yang sama dengan file atau folder yang ingin Anda sembunyikan. .hiddentidak akan diekspos oleh manajer file, dan file Anda tidak akan memiliki perubahan nama.

lfaraone
sumber
1
Saya ingin sekali menyimpannya di tempat yang sama :)
myusuf3
1
solusi ini akan membuat mereka tetap di tempat yang sama. .hidden bahkan tidak harus ada di folder rumah Anda jika Anda tidak menginginkannya. Saya biasanya menggunakannya pada removable drive yang memiliki file konfigurasi yang tidak ingin saya lihat.
jumpnett
1
@ jumpnett benar, tempat .hidden di lokasi yang sama dengan file yang ingin Anda sembunyikan, dan tambahkan nama file / direktori dalam file .hidden, satu per baris. Bagus sekali!
balikkan
3

Dari baris perintah Anda dapat mencoba sesuatu seperti ini di .bash_aliasesfile Anda :

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

Ini menambahkan perintah baru lshyang berperilaku seperti ls, tetapi menyembunyikan file yang terdaftar di .hiddendirektori. (Ini juga kehilangan beberapa fitur-fiturnya seperti keluaran berwarna dan daftar kolom.)

Qneill
sumber
2

Jika Anda ingin menyembunyikan file, Anda hanya perlu mengganti namanya dengan yang sebelumnya ., seperti halnya * NIX. Maaf, hanya itu.

Namun, jika Anda ingin menyembunyikan konten file / direktori, Anda dapat melakukannya dengan izin file.

Jadi katakan Anda memiliki banyak file dalam folder bernama secret_stash, Anda dapat mengubahnya sehingga hanya Anda (pemilik) yang memiliki r-x(baca, jalankan) dan semua orang tidak memiliki apa-apa ---(tidak memiliki akses). Karena r-xizin minimum yang diperlukan untuk melihat direktori (baca untuk mengakses kontennya dan jalankan untuk dapat melihatnya), apa pun di dalam folder itu secara efektif disembunyikan dari semua orang kecuali root.

CATATAN : Saya menjalankan demo ini sebagai root, dan mencoba mengakses folder asmyuser

Untuk melakukan ini, Anda menjalankan chmod 700 dirname(berarti 700 rwx------):

% mkdir secret_stash
% chmod 700 secret_stash

Dan ini dia:

% 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

Sekarang dan jika saya mencoba mengaksesnya myuser, upaya untuk mengakses folder atau isinya gagal:

% 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

Dan sekarang saya sudah mengucapkan kata "rahasia" berkali-kali sehingga tidak ada artinya lagi !!

jathanisme
sumber
2
Anda dapat membuatnya benar-benar disembunyikan chmod -R 000 secret_stashsehingga tidak ada yang bisa membacanya!
Marco Ceppi
@Marco Ceppi - ULTIMATE SECRECY!
jathanism
Tentu saja ini lebih "Keamanan" daripada "Ketidakjelasan" - yang menurut saya dicari oleh OP;)
Marco Ceppi
2
@MarcoCeppi: chmod 000 akan menyembunyikan file bahkan dari pemilik file, kecuali root, yang selalu dapat memotong 000. Namun, pemilik file masih dapat mengubah izin file untuk membacanya, jadi Anda harus juga mengubah kepemilikan file menjadi root untuk membuat 000 izin benar-benar bermakna.
Lie Ryan
2

Pertama: jika Anda ingin menyembunyikan file dari siapa pun: instal sistem deteksi intrusi linux . ( Mendengus adalah contoh) Anda bahkan dapat menyembunyikan file dari "root" tetapi "root" juga akan dapat mengembalikan pengaturan itu.


Tetapi mungkin lebih mudah untuk hanya mengatur izin direktori yang menyimpan file ke "root". Contoh:

 $ 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

Dan file 1tersebut secara efektif disembunyikan dari pandangan.

Direktori akan terlihat; file tidak akan terlihat. Harap diingat: "root" akan SELALU memiliki akses ke file apa pun.


Bersama dengan chattrAnda bahkan dapat membuat file tidak berubah.

sudo su    
chattr + i {file}

dan bahkan "root" tidak dapat mengubah file -kecuali- yang chattrdikembalikan (dan ya "root" bisa melakukan itu).

Ada Pintasan Keyboard untuk itu?

Tidak, ini adalah sesuatu yang perlu Anda lakukan secara manual.

Rinzwind
sumber
0

Ada juga ekstensi untuk Nautilus yang disebut nautilus-hide yang akan memungkinkan Anda untuk menyembunyikan file atau folder apa pun dengan klik kanan sederhana pada mereka.

Untuk menginstal ekstensi ini: sudo apt-get install nautilus-hidedi terminal, atau cari "nautilus hide" di Pusat Perangkat Lunak Ubuntu.

Jangan lupa untuk berhenti dari Nautilus setelah instalasi: Alt+ F2dan ketik nautilus -q.

Siput
sumber