UNIX & Linux'un tüm dosyaları (gizli olanlar dahil) bir dizinden diğerine nasıl taşırsınız? Sorusuna verdiği yanıtta bununla ilgili kapsamlı bir çözüm seti bulabilirsiniz. . Bash, zsh, ksh93, standart (POSIX) sh, vb .'deki çözümleri gösterir.
Bu iki komutu birlikte kullanabilirsiniz:
mv /path/subfolder/* /path/ # your current approach
mv /path/subfolder/.* /path/ # this one for hidden files
Veya hep birlikte ( teşekkürler pfnuesel ):
mv /path/subfolder/{.,}* /path/
Hangi genişler:
mv /path/subfolder/* /path/subfolder/.* /path/
(örnek: echo a{.,}b
genişler a.b ab
)
Bunun birkaç uyarı göstereceğini unutmayın:
mv: cannot move ‘/path/subfolder/.’ to /path/.’: Device or resource busy
mv: cannot remove /path/subfolder/..’: Is a directory
Bunları görmezden gelin: bu , aynı zamanda dizin ve üst dizin olan ve /path/subfolder/{.,}*
uzantılarının da olmasından kaynaklanır (Bkz . "." Ve "..", bir klasörün içindeyken ne anlama geliyor? )./path/subfolder/.
/path/subfolder/..
Yalnızca kopyalamak istiyorsanız, yalnızca şunları kullanabilirsiniz:
cp -r /path/subfolder/. /path/
# ^
# note the dot!
Bu, hem normal hem de gizli olan tüm dosyaları kopyalayacaktır, çünkü /path/subfolder/.
"bu dizindeki her şey" olarak genişler (Kaynak: Gizli dosyaları ve gizli dizinleri ve içeriklerini dahil etmek için cp ile nasıl kopyalanır? )
cp -r /path/to/source/. /destination