Trong Perl, làm thế nào tôi có thể tạo một thư mục con và, đồng thời, tạo thư mục cha nếu chúng không tồn tại? Giống như lệnh mkdir -p của UNIX?Làm cách nào để tạo thư mục thư mục và thư mục cha trong một lệnh Perl?
Trả lời
use File::Path qw(make_path);
make_path("path/to/sub/directory");
Các mkpath phản đối và make_path ưa thích bắt nguồn từ một cuộc thảo luận trong Perl 5 Khuân vác sợi đó là lưu trữ here.
Tóm lại, thử nghiệm Perl 5.10 bật lên sự lúng túng trong phân tích cú pháp đối số của giao diện makepath(). Vì vậy, nó đã được thay thế bằng một phiên bản đơn giản hơn đã lấy một băm làm đối số cuối cùng để thiết lập các tùy chọn cho hàm.
@skiphoppy: Điều này vẫn không phải là "như lệnh mkdir -p của UNIX" như đã nêu trong câu hỏi. trang man của mkdir hiển thị -p, --parents no error if existing, make parent directories as needed
Nhưng make_path sẽ trả về false nếu thư mục tồn tại. (ví dụ, make_path "/ tmp/foo" hoặc chết; # sẽ chết nếu/tmp/foo tồn tại) –
Randall
Sử dụng mkpath từ các module File :: Đường dẫn:
use File::Path qw(mkpath);
mkpath("path/to/sub/directory");
Nghiên cứu điều này ngay bây giờ, tôi thấy rằng mkpath() không còn được dùng nữa và giao diện chính thức giờ là make_path(). Nếu ai đó viết ra một lời giải thích tuyệt vời như những gì mà mua chúng tôi, tôi sẽ làm cho rằng câu trả lời được chấp nhận. – skiphoppy
ref http://perldoc.perl.org/File/Path.html
"Chức năng make_path tạo ra các thư mục được nếu họ không tồn tại [sic!] Trước, giống như các lệnh Unix mkdir -p
"
Vui lòng bỏ qua nếu bạn đang tìm kiếm một Perl mô-đun với 'mkdir -p' chức năng nhưng đoạn mã sau sẽ làm việc:
my $dir = '/root/example/dir';
system ("mkdir -p $dir 2> /dev/null") == 0
or die "failed to create $dir. exiting...\n";
bạn có thể sử dụng một mô-đun nhưng sau đó bạn phải cài đặt nó trên mỗi máy chủ bạn đang đi đến cổng mã của bạn trên. Tôi thường thích sử dụng chức năng hệ thống cho một tác phẩm như mkdir vì đó là chi phí thấp hơn để nhập và gọi mô-đun khi tôi chỉ cần một lần để tạo thư mục.
Cách tiếp cận đó có ý nghĩa nếu bạn muốn tránh cài đặt mô-đun. Tôi thường thích yêu cầu cài đặt các mô-đun tôi cần hoặc tôi từ chối hỗ trợ hệ thống. :) Tôi thích sử dụng các mô-đun để tôi có thể gặt hái lợi ích của việc thử nghiệm và nghiên cứu đi vào chúng, vì vậy tôi có thể tránh được các lỗi như không kiểm tra các cuộc gọi hệ thống hoặc mất thông báo lỗi, và bởi vì nó ít chi phí hơn để không có để tạo quy trình. – skiphoppy
Điều đó không tạo ra sự phụ thuộc vào hệ điều hành? –
- 1. Làm cách nào để tạo thư mục nếu thư mục không tồn tại bằng Perl?
- 2. Cách tạo thư mục/thư mục
- 3. Cách tạo thư mục trong thư mục chính?
- 4. Làm cách nào để tạo thư mục trong thư mục làm việc hiện tại, trong Java
- 5. Tạo một thư mục con cho tất cả các thư mục trong thư mục
- 6. Subversion - Thanh toán một thư mục cha
- 7. Di chuyển thư mục từ thư mục này sang thư mục khác trong tập lệnh batch
- 8. Lệnh để nén thư mục bằng cách sử dụng thư mục cụ thể làm gốc
- 9. chuyển sang thư mục cha trong unix
- 10. Làm thế nào để hiển thị các thư mục và thư mục con từ thư mục trong PHP
- 11. Làm cách nào để tạo một tệp VÀ bất kỳ thư mục nào, nếu các thư mục không tồn tại?
- 12. Kiểm tra xem một thư mục có tồn tại (và tạo thư mục) trong Qt, C++
- 13. Lấy danh sách các thư mục trong một thư mục
- 14. FileStream và tạo thư mục
- 15. tạo một thư mục mới và một tập tin văn bản bên trong thư mục đó
- 16. Cách tạo thư mục mới?
- 17. Xóa một thư mục và các thư mục con của nó trong Mục tiêu-C/C
- 18. Liệt kê tất cả các tệp và thư mục trong thư mục + thư mục con
- 19. Danh sách các thư mục trong một thư mục, bỏ qua các tiểu thư mục ANT
- 20. Làm cách nào để tìm tất cả thư mục con của một thư mục?
- 21. Làm cách nào để hủy thư mục con trong thư mục hiện tại?
- 22. tìm thư mục trong một thư mục mà không liệt kê thư mục gốc
- 23. Làm cách nào để có được kích thước thư mục (tệp trong thư mục) trong C#?
- 24. Tại sao danh sách thư mục chứa thư mục (.) Và thư mục mẹ (..) hiện tại?
- 25. lệnh adb shell: mkdir (để tạo một thư mục)
- 26. Thư mục ZIP có thư mục con trong python
- 27. Tìm kiếm tệp trong thư mục có nhiều thư mục
- 28. Cách sao chép tệp từ một thư mục sang thư mục khác bằng cách tạo thư mục nếu thư mục đó không tồn tại
- 29. làm thế nào để liệt kê tất cả các thư mục con trong một thư mục
- 30. Tạo thư mục trong Android
Đã thêm câu hỏi này để tôi có thể dễ dàng tìm lại câu hỏi này trong tương lai, thay vì tìm kiếm nó mọi lúc. Tôi luôn tìm kiếm điều này trong POSIX.pm, vì một lý do nào đó. – skiphoppy