Saya ingin membuat file bernama test
. Secara tidak sengaja saya mkdir test
malah lari touch test
.
Apakah mungkin untuk mengkonversi test
direktori dalam file bernama test
?
Bagaimana dengan mengonversi file yang dinamai test
menjadi direktori dengan nama yang sama?
rm -f test && touch test
kecuali ini, saya benar-benar tidak tahuJawaban:
Ini tidak mungkin untuk Unix atau Linux yang pernah saya sentuh.
Di bawah beberapa Unix yang lebih lama, direktori adalah file, yang ditandai secara khusus, tetapi masih berupa file. Anda dulu dapat membaca direktori dengan
cat
SunOS, misalnya. Banyak filesystem modern mungkin memiliki direktori sebagai B + tree, atau beberapa struktur data pada disk. Jadi mengubah file menjadi direktori atau sebaliknya akan selalu membutuhkan penghapusan dan pembuatan ulang dengan nama yang sama.sumber
Tidak, tidak ada perintah seperti itu karena sama sekali tidak ada gunanya. Pertanyaan Anda seperti meminta cara untuk mengubah sebuah kotak menjadi persegi panjang datar. Apa yang akan Anda lakukan dengan hal-hal di dalam kotak (direktori)? Bagaimana persegi panjang sesuai dengan kotak asalnya?
File dan direktori memiliki fungsi yang sangat berbeda. Sementara direktori memang file dalam sistem * nix, itu hanya berlaku untuk internal sistem dan bukan untuk apa yang Anda, pengguna, lihat. Jadi, mengonversi file ke direktori, atau sebaliknya, akan selalu melibatkan menghapus file dan membuat direktori. Yang terbaik yang bisa Anda harapkan adalah menggunakan inode yang sama tetapi sekali lagi, tidak banyak gunanya.
sumber
Buat fungsi untuk melakukan apa yang Anda inginkan. (
bash
atau diasumsikan shell Bourne / POSIX lainnya)Saya sengaja menggunakan
rmdir
mana yang akan gagal jikaadir
bukan direktori atau tidak kosong (tidak-f
memaksa).touch
hanya akan berjalan jikarmdir
berhasil.Anda bisa meletakkan definisi fungsi di file kustomisasi shell Anda (
.bashrc
untukbash
).sumber
--
?--
menandai akhir dari bendera jadirmdir
dantouch
tahu apa-apa masa lalu itu adalah nama file, bahkan jika itu dimulai dengan-
.Bagi mereka yang bertanya-tanya mengapa Anda ingin melakukan ini, ikuti utas ini:
https://community.linksys.com/t5/Wireless-Routers/Media-files-changing-to-folder-types/td-p/504192/highlight/true
Rupanya bug di firmware membalik bit dalam entri direktori untuk file tersebut, membuat OS berpikir itu adalah folder, bukan file.
Meskipun saya tidak memiliki perute Linksys yang dipermasalahkan, sesuatu mengubah semua file .jpg saya menjadi folder kosong. Jika ada cara untuk membalik bit (atau apa pun) yang mengatakan entri direktori NTFS adalah folder vs file, saya ingin tahu tentang hal itu.
Salah satu solusi dalam utas selama 2 tahun itu mengatakan jika hard drive yang berisi folder-yang-digunakan-menjadi-file-terhubung ke Mac yang menjalankan OS / X, Mac akan melihatnya sebagai file lagi, dan mereka dapat disalin ke folder di Mac. Saya tidak punya Mac untuk mencobanya, jadi jika ada yang tahu cara untuk membalikkan bit ...
sumber
Pertama, dapatkan akses ke terminal dan jalankan
ls -al file
dengan file menjadi file yang ingin Anda konversi kembali menjadi folder AKTUAL. Jika ada file dan sub-direktori yang terdaftar itu berarti "file" Anda sebelumnya folder dengan konten nyata dan Anda dapat melanjutkan:Menjalankan:
ATAU
Mulai ulang sistem dan dapatkan kembali akses terminal dan jalankan:
ATAU
INGAT: "file" harus diganti dengan file yang ingin Anda konversi kembali menjadi folder AKTUAL.
Ini hanyalah cara sewenang-wenang untuk menyelesaikan masalah ini tetapi ini menciptakan anomali izin yang dapat Anda gunakan
fsck -f
untuk memperbaikinya (sementara tidak dipasang tentu saja) atau secara manual mengatur izin baru sesuai kebutuhan.LAGI, ini hanyalah cara yang sudah terbukti untuk menghindari keharusan menghapus file yang sebelumnya merupakan folder tidak kosong.
sumber