2012-02-05 32 views
1

我試圖通過SSH解壓文件,我需要區分大小寫的解壓縮。SSH解壓但具有CASE-SENSITIVITY

我的服務器使用的是Debian的解壓6.

它不應該這樣做,但它轉換我的所有文件名稱爲小寫,引起我的Joomla網站扣。

如果我想在我的有生之年完成,有太多的文件需要手動重命名或FTP。

我有一個名爲bv2.zip拉鍊放在我想提取目錄...

我已經cd'd到我的目錄,並簡單地發出:解壓bv2.zip ....所有的文件名去小寫...

我也曾嘗試絕對路徑無濟於事,該UNZIP幫助和手冊規定,區分大小寫默認情況下,這個版本啓用,但顯然不是...

任何想法? ?

+0

你用「解壓bv2.zip」得到什麼錯誤? – 2012-02-05 04:19:38

+0

對不起,不是錯誤,只是當我嘗試解壓縮時提及的不區分大小寫的行爲 – flexage 2012-02-05 04:25:03

+0

您的原始文件系統是什麼?如果可能是OSX的文件系統的OSX不區分大小寫。 – thenetimp 2012-02-05 04:26:10

回答

8

unzip -v file.zip顯示什麼?該文件說

默認解壓名單和 提取物,例如文件名正是因爲它們存儲(除 截斷,不支持字符轉換等)

這將會是值得一試如何他們被存儲。如果創建的zip程序將它們全部保存爲小寫,那麼這就是您需要尋找一種實際存儲未改變文件名的方式。

最後,請確保您的Debian服務器上沒有別名或環境變量,強制使用-L選項。請看下面的命令的輸出,Debian的服務器的終端上運行:

alias 

(應該有解壓沒有怪異的別名)

echo $UNZIP 

(包含在這個環境變量中的任何標記將被用於通過解壓縮,就好像它們已被添加到命令調用中一樣)。

+7

你知道了我的男人....網絡託管公司,在那裏有無限的智慧設置了別名:別名unzip ='unzip -L' – flexage 2012-02-05 04:40:10

+0

對於任何人一直在尋找解決方案我越過我的託管公司的別名通過使用'\ unzip example.zip' – BaronGrivet 2016-06-27 02:36:51

0

你確定你的.zip文件沒有全部以小寫字母開頭嗎?也許無論你用什麼程序來創建zip文件都將名稱轉換爲小寫。

+0

只是Win7的內置壓縮功能,原始文件def有名稱的大寫部分,所以zip中的文件也是這樣 – flexage 2012-02-05 04:31:25

+1

哦,我永遠不會相信Windows做正確的事情。如果一切都失敗了,我會嘗試另一個zip實用程序。由於我對Windows不太熟悉,不能推薦一個;抱歉。 – Roadmaster 2012-02-05 04:32:32

+0

嘗試[7-zip](http://www.7-zip.org/)。 – jjlin 2012-02-05 04:34:17

0
  1. 的 「-L」(將所有文件名轉換爲小寫)和 「U」(將所有文件名以大寫字母)選項來控制這個行爲:

http://www.mkssoftware.com/docs/man1/unzip.1.asp

  1. 這如果.zip中的文件來自不區分大小寫的文件系統(如MS-DOS或VAX/VMS),則只是一個問題。它應該而不是是一個問題,如果這些文件使用ANY當代版本的Zip或WinZip在任何當代文件系統(Unix,MacOS,Windows 95或更高版本)上壓縮。

SOOOO ......

  1. 是否有任何機會這些都是DOS文件?

    還是您使用DOS版本的PKZip?

    還是文件只是小寫字母開頭?

+0

小心。他使用的是unzip 6.0,因此-U具有不同的行爲。你引用的手冊頁甚至說:「(過時;在未來的版本中被刪除)」 – Roadmaster 2012-02-05 04:34:56

2

我在1 & 1託管中面臨同樣的問題。我已通過鍵入以下內容來解決此問題:

alias unzip='unzip' 

問題是unzip -L是別名。

現在我已經解壓縮的Prestashop備份,它就像一個魅力

問候

+0

謝謝!這讓我瘋狂! – Collins 2016-12-21 15:37:10

+1

我很高興有用 – manuelbcd 2016-12-22 10:52:31