2012-06-17 17 views
7

Tôi có một thư mục với một số dấu chấm tôi muốn tạo liên kết cho. Tôi không thể nhìn thấy một cách dễ dàng để làm điều này.Bash tìm, loại trừ cha mẹ?

ls -a ~/dotfiles sẽ bao gồm các dotfiles, mà còn ...

find ~/dotfiles -maxdepth 1 sẽ bao gồm các dotfiles, mà còn ~/dotfiles

Trả lời

13

Dựa tắt MvanGeest’s nhận xét điều này dường như hoạt động.

find ~/dotfiles -maxdepth 1 -mindepth 1 

này trông để thực hiện công việc cũng

ls -A ~/dotfiles 
+1

+1 Tôi sắp gửi một câu trả lời với 'tùy chọn -A ls' cho đến khi tôi thấy điều này. – chepner

+0

@StevenPenny Tôi đã sử dụng BSD tìm chứ không phải là GNU tìm thấy, bạn là đúng, và tôi sẽ thay đổi kịch bản của tôi cho phù hợp. Cảm ơn bạn đã chỉ ra điều đó. –

1

Dường như bạn đang cố gắng tìm file dấu chấm, ví dụ. Các tệp bắt đầu bằng dấu "." và có một ký tự thứ hai không phải là ".". Điều này sẽ thực hiện công việc:

find . -name '.[^.]*' 

để liên kết tất cả các file được tìm thấy/path/to/dir:

find $PWD -name '.[^.]*' -exec ln -s '{}' /path/to/dir \; 

Lưu ý rằng "$ PWD" tạo ra một đường dẫn tuyệt đối, như liên kết tượng trưng đến đường dẫn tương đối sẽ có nhiều khả năng chỉ vào niết bàn ...