Aku berhasil membuat sebuah direktori harfiah bernama ~
.
(Rupanya, Python os.mkdir('~/something')
melakukan ini.)
Bagaimana cara menghapusnya tanpa nuking rumah saya?
Juga, jika itu membantu, saya punya yang asli /home
di partisi yang terpisah. Dan duplikat ~
itu berada di (yang asli ) ~
.
filesystem
directory
Secara universal unik
sumber
sumber
os.mkdir(os.path.expanduser('~/something'))
.os.rmdir('~/something')
untuk menghapusnya?Jawaban:
Melarikan diri
~
dengan\~
atau menggunakan kutipan tunggal'~'
. jadi kamu bisaatau
sumber
rmdir
tidak merusak.rmdir
hanya akan menghapus direktori yang kosong, jadi jika Anda mencobarmdir
direktori apa pun yang ada di dalamnya,rmdir
akan menolak untuk menghapusnya.~
diperluas secara khusus hanya pada awal kata "shell".rmdir *
. Karena hanya menghapus direktori kosong, Anda tidak perlu khawatir tentang melakukan sesuatu yang merusak.ls -d
untuk melihat apakah itu mencantumkan direktori atau file yang Anda inginkan. Tidak perlu apa pun dengan efek sepertimv
.Apa yang python berikan, python dibawa pergi:
Jika Anda melakukannya
os.mkdir
, Anda dapat membatalkannya denganos.rmdir
(dan juga untukos.makedirs
danos.removedirs
).sumber
Anda dapat keluar dari nama direktori menggunakan backslash seperti ini (dengan asumsi Anda beroperasi di direktori induk yang ingin Anda hapus):
Atau Anda dapat menggunakan jalur relatif dengan titik sebagai direktori saat ini (juga ketika berada di direktori induk):
Atau Anda dapat menggunakan jalur absolut penuh:
Dan jangan khawatir,
rmdir
hanya dapat menghapus direktori kosong. Jika Anda secara tidak sengaja salah ketik perintah dan jalur akan mengevaluasi ke direktori home Anda yang sebenarnya, itu tidak dalam bahaya karena mengandung file:sumber
./~
ke~/
, terlepas dari direktori Anda saat ini. Situasi yang sama dengan path absolut penuh.find
Perintah dapat melakukan mukjizat seperti itu. Perintahakan memberi Anda nomor inode file atau direktori. Kemudian Anda dapat menggunakan
find
untuk menghapus file atau direktori tersebut menggunakan:dan
sumber
Apa yang seharusnya dilakukan
Anda seharusnya tampil
home=os.path.expanduser("~")
pertama dan kemudianos.path.join(home,"something")
. Ini~
diperlakukan sebagai teks dalam python dan tidak berkembang seperti halnya dibash
atau shell lainnya.Bagaimana cara menghilangkannya
Selain metode yang telah disebutkan, kita dapat menggunakan nilai hex untuk
~
dari tabel ascii karakter, yang tidak seperti yang sebenarnya~
tidak diperluas ke direktori home pengguna pada baris perintah (Jika Anda bertanya-tanya, ketika tilde muncul di awal kata, itu diperluas ke direktori home pengguna. Bandingkanls ~
danls $'\x7e'
).Begini cara kerjanya:
sumber