Filenames

複製到 USB 驅動器會修改文件名

  • July 13, 2016

我有一個 bash 腳本,可以將數據複製到 U 盤。有用。數據被很好地複制,但文件名總是被改變。它們與以前相同,但任何更長的名稱都被縮短為只有 8 個字元長,並且副檔名只有 3 個字元長(總共 11 個字元)。

因此,名為“willGetCutShorter.html”的原始文件在驅動器上變為“willGetS.htm”,而“small.txt”保持不變。複製的目錄名稱以相同的方式被剪切,都出現 8 個字元長(當然,它們沒有副檔名)。

我不希望這種情況發生。我希望根本不修改文件和目錄名稱。我也不知道為什麼會這樣。

在我的 bash 腳本中,我將電腦目錄中的所有內容複製到驅動器,並使用星號表示所有電腦目錄內容。我想知道這是不是為什麼?也許 cp 只是抓取文件名的一部分?

此外,在 Linux 中,文件全部以小寫形式出現,即使是最初部分大寫的文件。但是,在 Windows 中,所有文件和文件夾都是大寫的。

為什麼?

編輯#1

在我開始以這種方式使用它之前,我在 Windows 7 機器上格式化了 USB 驅動器。在我的/etc/fstab文件中,我為將其掛載為 msdos 的驅動器添加了一個條目。這是因為我閱讀了手冊頁(可能是“man mount”),它說驅動器格式為 FAT32,被 msdos 覆蓋。

我想以 FAT32 作為文件系統類型來掛載它,但我在掛載手冊頁中看不到該選項。fstab 條目意味著 mount 命令僅包含以下內容:

sudo mount /mnt/

bash腳本中的複制命令都是這樣的:

cp -f -r /path/to/dir/* /mnt/to/dir/

聽起來我只需要將驅動器重新格式化為其他東西,或者稍微不同地安裝它?

我懷疑您正在使用如下所示的安裝命令:

     mount -t msdos /dev/XYZ /mnt/test

這將強制分區安裝在使用 8.3 文件名約定(參見https://en.wikipedia.org/wiki/8.3_filename)而不是使用長文件名(https://en. wikipedia.org/wiki/Long_filename)。

推薦使用以下任一掛載選項:

     mount /dev/XYZ /mnt/test     (by default uses vfat, if it is FATXX formatted USB stick)

或者

     mount -t vfat /dev/XYZ /mnt/test  (explicitly mount as vfat, if it is FATXX formatted USB stick)

引用自:https://unix.stackexchange.com/questions/295090