Di chuyển các tệp / thư mục ẩn bằng dòng lệnh hoặc tệp bó


15

Câu hỏi

Có ai biết cách di chuyển các tệp và thư mục có thuộc tính ẩn, hệ thống hoặc chỉ đọc được đặt từ dòng lệnh hoặc tệp bó không? (Không, tước các thuộc tính trước tiên không phải là một tùy chọn vì không có cách thực tế nào để biết thuộc tính nào được đặt để đặt lại chúng sau khi di chuyển.)


(Nỗ lực không thành

  1. Sử dụng movelệnh cơ bản không hoạt động với các mục với tập thuộc tính ẩn hoặc hệ thống và vì một số lý do, nó không có các công tắc để chỉ định các thuộc tính như các lệnh dirdellệnh thực hiện.

  2. Tôi đã thử sử dụng một tiện ích mà tôi đã viết sử dụng chức năng vận hành tệp của shell, nhưng yêu cầu sử dụng start /wđể ngăn chặn tệp bó chạy trước và nó phàn nàn về việc hỗ trợ tên tệp dài vì một số lý do.

  3. Tôi đã thử sử dụng robocopy, nhưng trước tiên, nó sao chép các tệp và sau đó xóa bản gốc thay vì chỉ đơn giản là di chuyển nguồn (dẫn đến độ trễ bực bội, ngay cả khi đầu ra quá mức được chuyển hướng đến nul).

(Đáng ngạc nhiên là dường như rất ít người cần phải di chuyển các tập tin ẩn khỏi dòng lệnh. Tất cả những gì tôi có thể tìm thấy là người này đã từ bỏ nỗ lực này.)


4
Nếu bạn đang tạo \tempthư mục, tại sao không đổi tên / chuyển %1thư mục sang \temp? Hay đó chỉ là trường hợp đơn giản hóa?
Ken

Đó thực sự là một trường hợp đơn giản. Đơn giản chỉ cần đổi tên sẽ không hoạt động.
Synetech

Tại sao tước một thuộc tính không phải là một tùy chọn? Đó sẽ là cách thích hợp (và dự định) để làm điều đó.
Rook

> Tại sao tước một thuộc tính không phải là một tùy chọn? @Idigas, làm thế nào chính xác bạn sẽ biết thuộc tính nào được đặt trên mỗi và mọi mục để chúng có thể được đặt lại chính xác? > Đó sẽ là cách thích hợp (và dự định) để làm điều đó Điều đó không đúng chút nào.
Synetech

Tha thứ cho sự thiếu hiểu biết của tôi, nhưng liệu một cái gì đó như jamesewelch.com/2008/05/01/ sẽ làm việc?
Bác sĩ Kitty

Câu trả lời:


6

Tôi đã có thể di chuyển thành công các tệp ẩn, chỉ đọc bằng MV.EXE từ các tiện ích GNU cho Win32. Tệp đích giữ lại các thuộc tính ẩn, chỉ đọc.

Bạn sẽ phải tải xuống toàn bộ gói:

http://gnuwin32.sourceforge.net/downlinks/coreutils-bin-zip.php


1
Không tệ. Điều đó hoạt động, không may nó chết khi xử lý các tập tin bắt đầu với --; nó nghĩ rằng đó là một đối số thay vì tên tệp.
Synetech

2
Không tệ? Đó là nó? Nó giải quyết yêu cầu của bạn. Tôi không thấy bất cứ điều gì về yêu cầu '--filename', hoặc tôi sẽ kiểm tra nó. Xin lỗi, nhưng yêu cầu ẩn là thể thao kém.
RobW

Vâng không tệ. Nó không chỉ hoạt động cơ bản mà tôi đã hỏi về. Nếu nó không thể xử lý tên tệp Windows hợp lệ, thì bây giờ nó không hữu ích lắm phải không? Xử lý tên tập tin một cách chính xác không phải là một yêu cầu ẩn ẩn của người Viking.
Synetech

3
@Synetech, Bạn chỉ cần đủ điều kiện tên tệp:mv .\--1.txt newdirectory
dangph

4
Các tiện ích Unix nói chung được sử dụng --foođể biểu thị các đối số dòng lệnh. Để hỗ trợ tên tệp bắt đầu bằng --, hầu hết chúng chấp nhận một đối số đặc biệt --để biểu thị kết thúc của đối số dòng lệnh và bắt đầu tên tệp. Tôi không chắc liệu đó có phải mvlà một trong những lệnh này hay không, nhưng nếu có, thì bạn sẽ có thể:mv -- --weirdFileName.gotcha betterFileName.txt
Ben

5

Tôi vừa hoàn thành việc này bằng cách sử dụng:

xcopy /H hidden_file destination_file
del /AH hidden_file

1
Câu hỏi hỏi làm thế nào để di chuyển các tập tin. OP biết cách sao chép và xóa và không muốn làm điều đó. Ngoài ra, anh ta nói rằng anh ta đã biết cách xóa các tập tin ẩn.
Scott

2
Scott là chính xác; nếu khối lượng nguồn và đích là như nhau, điều cuối cùng bạn muốn làm là để di chuyển một tập tin bằng cách sao chép nó trước. Tốt nhất, nó là vô nghĩa với một tệp nhỏ, nhưng với một tệp lớn hoặc nhiều tệp nhỏ (huống chi là nhiều tệp lớn), điều đó thật kinh khủng (tải CPU và đĩa cao). Điều này được làm cho tất cả tồi tệ hơn nếu bạn đang di chuyển toàn bộ cây thư mục. Hệ thống tệp đã hỗ trợ di chuyển nhanh chóng và dễ dàng bằng cách thay đổi các con trỏ nhập thư mục; vấn đề là ở giao diện HĐH, điều đó ngăn cản việc làm như vậy với các tệp ẩn.
Synetech

Đủ công bằng, nó không phải là một động thái thực sự. Và đối với những bước chuyển lớn, nó có thể mang lại rất nhiều chi phí. Nhưng OP thực sự chưa bao giờ nói rằng một bản sao + xóa nhất thiết phải là một điều xấu, và bất kể, đây là một trong những lượt truy cập hàng đầu trong các tìm kiếm trên web về cách di chuyển một tệp ẩn khỏi dòng lệnh và nó hoạt động cho những gì tôi phải làm . Tôi tưởng tượng mọi người chỉ tìm cách di chuyển một vài tệp ẩn cũng có thể sử dụng nó thay vì cài đặt các công cụ GNU hoặc PowerShell. Rất khó chịu khi lệnh "di chuyển" đơn giản là không thể làm điều này.
Ben

1
Từ câu hỏi: “ (Không) Nỗ lực ... 3. Tôi cố gắng sử dụng robocopy, nhưng nó lần đầu tiên bản sao các tập tin và sau đó xóa bản gốc thay vì chỉ đơn giản là di chuyển nguồn (mà kết quả trong một sự chậm trễ bực bội, ...).”
Scott

Đủ công bằng ... Tôi đoán tôi đã đọc rằng "Tôi không muốn sử dụng bản sao" thay vì "Tôi không muốn một hoạt động sao chép + xóa." Nhưng tôi thấy quan điểm của bạn.
Ben

3

Quyền hạn v2:

move-item -force   '--1.txt' newdirectory

cũng di chuyển các tập tin ẩn với các thuộc tính hệ thống và ẩn. Sẽ hoạt động với các tệp bắt đầu bằng '-'.


1
Tôi chắc chắn rằng nó sẽ hoạt động, nhưng PowerShell rất chậm so với dấu nhắc lệnh thông thường. Và không, đó không phải là một yêu cầu ẩn của người Viking, tôi nói rõ rằng tôi không thích sự chậm trễ của Robocopy trong câu hỏi. (Xin đừng nói với tôi rằng nó hoạt động nhanh trên hệ thống của bạn vì điều đó không giúp tôi trong bất kỳ cách nào. Trên hệ thống của tôi, bạn chỉ mất vài giây để tải và thậm chí chỉ cần nhấn Tabđể hoàn thành tên tệp mất> 1 giây là thứ tự độ lớn chậm hơn so với cmd. Vì vậy, trừ khi bạn sẵn sàng mua cho tôi một hệ thống mới, thì PS sẽ không giúp được gì.)
Synetech

Giải pháp PowerShell thậm chí còn dễ dàng hơn:mv .oldfile .newfile
Jay Sullivan

0

Còn cái này thì sao?

C:\Temp>attrib hidden.txt
A   H        C:\temp\hidden.txt

C:\Temp>mklink /H renamed.txt hidden.txt
Hardlink created for renamed.txt <<===>> hidden.txt

C:\Temp>del /AH hidden.txt

C:\Temp>attrib renamed.txt
A   H        C:\temp\renamed.txt

Rõ ràng điều này chỉ hoạt động trong các ràng buộc về nơi cho phép liên kết cứng. Tôi nghĩ điều này có nghĩa là đích của tệp phải nằm trên cùng một phân vùng của cùng một đĩa vật lý. Nhưng nếu hạn chế này không được đáp ứng, tôi chắc chắn rằng một bản sao + xóa sẽ được yêu cầu bằng mọi cách, dưới mui xe.
Ben

Ý tưởng thú vị. Tất nhiên là quá hạn chế (tôi chỉ sử dụng NTFS cho ổ đĩa hệ thống Windows 7 và FAT32 cho mọi thứ khác. Ngoài ra, tôi thường sử dụng Windows XP.) Nó dường như cũng hoạt động không nhất quán với các kết hợp thuộc tính khác nhau. Ví dụ: nếu bạn đặt thuộc tính chỉ đọc, nó sẽ không cho phép bạn xóa tập tin mới của Wikipedia trong lần đầu tiên bạn cố gắng xóa nó, thay vào đó, nó loại bỏ thuộc tính. ಠ_ Và tất nhiên, nó không hoạt động cho các thư mục.
Synetech

0

Chúng tôi đã có PowerShell và mvlệnh. Do đó, để hoàn thiện, đây là cách thực hiện với TCC / LE của JP Software , cả hai lệnh moverenlệnh đều có một /a:tùy chọn phổ biến đối với nhiều lệnh của nó quét các thư mục để các tệp hoạt động theo:

[C: \ Users \ JdeBP] chạm / c - có thể--
11/03/2014 20: 29: 18.868 C: \ Users \ JdeBP \ - wibble--

[C: \ Users \ JdeBP] attrib + h + s. \ - wibble--
___A___________ -> _HSA___________ C: \ Users \ JdeBP \ - wibble--

[C: \ Users \ JdeBP] di chuyển / a: hs --wibble-- --wobble--
C: \ Users \ JdeBP \ - wibble-- -> C: \ Users \ JdeBP \ - wobble--
     Đã di chuyển 1 tệp

[C: \ Users \ JdeBP] ren / a: hs --wobble-- --wurble--
C: \ Users \ JdeBP \ - lắc lư-- -> C: \ Users \ JdeBP \ - wurble--
     1 tập tin được đổi tên

C: \ Users \ JdeBP] dir / a: hs / t / m / k --wurble--
11/03/2014 20:29 0 _HSA___________ - có thể--

[C: \ Người dùng \ JdeBP]

đọc thêm

  • Phần mềm JP. DI CHUYỂN . Nhận lệnh / TCC Trợ giúp.
  • Phần mềm JP. REN . Nhận lệnh / TCC Trợ giúp.

Tôi không muốn mua một phần mềm thương mại để làm những gì tôi có thể làm được với một chương trình nhỏ, miễn phí (và cuối cùng tôi có thể phải tự viết nó như bình thường). Bất kể, bạn đã mã hóa cứng các thuộc tính không tốt vì bạn không thể dự đoán các thuộc tính mà thư mục có thể có. Ngoài ra, bằng cách chạm vào nó, bạn mất dấu thời gian ban đầu của nó.
Synetech
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.