Làm cách nào tôi chỉ có thể di chuyển các tệp đơn giản (không phải thư mục) từ một thư mục trong Linux sang thư mục khác bằng mv
lệnh?
Tôi đã thử mv * ~/
, nhưng nó sao chép mọi thứ kể cả các thư mục.
Làm cách nào tôi chỉ có thể di chuyển các tệp đơn giản (không phải thư mục) từ một thư mục trong Linux sang thư mục khác bằng mv
lệnh?
Tôi đã thử mv * ~/
, nhưng nó sao chép mọi thứ kể cả các thư mục.
Câu trả lời:
Bạn co thể thử
find . -maxdepth 1 -type f -exec mv {} destination_path \;
-exec
Tôi là một chàng trai "sử dụng búa cho mọi thứ" vì vậy tôi sử dụng các chương trình vỏ bourne cho những thứ người khác sử dụng các chương trình bên ngoài cho ...
for file in * .*
do
test -f "$file" && mv "$file" "$HOME"/
done
Một số người thích hoàn thành công việc đánh máy càng ít càng tốt nhưng tôi là một người đánh máy khá nhanh và tôi đã có những thứ như thế này được tích hợp trong não nên không quá đau đớn để làm điều này thay vì tìm kiếm chính xác đối số để tìm và thực hiện và tất cả điều đó.
YMMV, mặc dù ...
@Mereghost rất gần. Đây là những gì tôi có thể di chuyển tất cả các tệp (bao gồm các tệp ẩn), nhưng không phải là thư mục:
find . -maxdepth 1 -type f -name '*' -exec mv -n {} /destination_path \;
Việc .
tìm kiếm giả định thư mục hiện tại của bạn là nguồn của các tệp bạn muốn di chuyển. Nếu không, lệnh có thể được sửa đổi, như sau:
find /source_path -maxdepth 1 -type f -name '*' -exec mv -n {} /dest_path \;
Nếu bạn chỉ muốn di chuyển các tệp thông thường và không ẩn các tệp:
find . -maxdepth 1 -type f -name '[!.]*' -exec mv -n {} /dest_path \;
Nếu bạn chỉ muốn di chuyển các tệp bị ẩn và không phải các tệp thông thường:
find . -maxdepth 1 -type f -name '.*' -exec mv -n {} /dest_path \;
Nếu bạn không có thư mục có tên có dấu chấm trong đó, bạn có thể di chuyển tất cả chúng một cách đơn giản:
mv . ~ / đích đến
(Giả định của tôi là tất cả các tệp của bạn là một cái gì đó. Một cái gì đó (trong trường hợp của tôi là tất cả thường)
NHƯNG nhờ các câu trả lời khác - rất hữu ích. cám ơn
bạn có thể sử dụng tìm
find * -maxdepth 1 -type f -exec mv {} ~ \;
mv `tìm ./sourcedir/* -type f` ./destdir
find
's -exec
lựa chọn là cách tốt nhất để tránh vấn đề.