[問題] 請問 7z 內檔案檔名太長怎解?

作者: s9209122222 (海海海)   2022-09-20 17:58:18
以下是我在 CLI 運行所跑出的訊息,因為太長我換很多行:
ERROR: Can not open output file : 檔名太長 : ./mqkwi0400/视图
/V/一望无际的大海全裸是一种享受裸露爱好普通人看来是变态行为不
为人所接受有谁能明白全裸只是一种放松的自由并没有想象中的龌蹉
和色情用平常心看待来到这世上不就是身不着片缕吗为自己活一回不
在意别人的评价在合法范围内喜欢什么做什么需要这样的一个圈子
_1426359595241406465_720x1280.mp4
ERROR: Can not open output file : 檔名太長 : ./mqkwi0400/视图
/V/线下见个面吃个饭相互认识一下在考虑拉进群一起玩这样可以一起
玩的放心不至于混进去别有用心的人但凡线下见过都能加微信不收任
何门槛只是为了群成员的安全需要细致筛选值得信任的人一起玩那些
耍嘴炮的别有用心的最好别私信我不约炮不做猥琐的事情
_1438568717764366338_720x1280.mp4
Sub items Errors: 19
Archives with Errors: 1
Sub items Errors: 19
請問在 Linux 上面要怎麼解呢?我在 File Roller 內嘗試改名無效。
真好奇當初他們怎麼打包的,明明 NTFS 和 EXT4 都是 255 bytes。
作者: roccqqck (ccqq)   2022-09-20 18:05:00
"檔名"檔案給我上車試試
作者: s9209122222 (海海海)   2022-09-20 18:06:00
對呀,檔名太長呀我看看求解……
作者: billycsu   2022-09-20 18:52:00
在win11上解倒沒問題...
作者: breeze08 (linuxer)   2022-09-20 18:53:00
我到底看了什麼...
作者: s9209122222 (海海海)   2022-09-20 20:41:00
什麼!9 部影片都沒問題嗎?難不成是 Linux 的 ext4 太落後了嗎?
作者: lantw44 (#######################)   2022-09-20 21:15:00
剛看 7z 有個 rn 指令好像可以改檔名,不過我沒用過。另外 Windows 的 255 不是 bytes 吧,應該是 UTF-16 codeunits 吧。以第一個檔名來說,UTF-16 比 UTF-8 省空間,UTF-16 302 bytes(151 code units)、UTF-8 387 bytes。
作者: s9209122222 (海海海)   2022-09-20 21:49:00
好奇那是什麼單位,ext4 查了確實是 byte
作者: lantw44 (#######################)   2022-09-20 21:57:00
在 Linux 下一般都用 UTF-8 編碼,用 byte 算字串長度。但在 Windows 下常常是用 UTF-16 編碼,以 16 bits 為單位計算長度,也就是轉成 UTF-16 編碼後 byte 數除以 2。
作者: Bencrie   2022-09-20 22:49:00
中文一個 char 大概 3bytes,自己算算有沒有超過吧
作者: bitlife (BIT一生)   2022-09-21 09:33:00
快速瞄一眼內文還沒看推文前以為這篇是進階版本的救援性交易訊息. 後來看了推文, 還是沒有減少我的疑慮 XD
作者: s9209122222 (海海海)   2022-09-21 11:26:00
蛤?
作者: bitlife (BIT一生)   2022-09-21 12:28:00
我是說付錢救援,請人解決問題 XD 故意用雙關語
作者: Alica (Torsades de Pointes)   2022-09-21 13:14:00
結論就是檔名長度這點ext4確實上限低於NTFS解壓縮時指定存在NTFS分割區大概就解得出來了
作者: EdwardGJLee (LGJ)   2022-09-21 15:27:00
ext4 和 NTFS 的預設定義都是 255。會有差別是編碼的長度(所佔空間)的問題。BTW,win10 以後有變動。win 是用 wide char 系統。linux 是用 multiple-byte
作者: leolarrel (真.粽子無雙)   2022-09-21 15:30:00
跟ext4 無關,你能在linux disk 出現這個檔案就表示ext4
作者: EdwardGJLee (LGJ)   2022-09-21 15:30:00
char 系統。因此他們的 encoding length 不一樣。
作者: leolarrel (真.粽子無雙)   2022-09-21 15:31:00
能處理這樣的檔名阿.是跟你的那個7z 程式有關喔,抱歉我誤會了,我以為你是要把mp4檔案壓縮到zip裡
作者: s9209122222 (海海海)   2022-09-21 16:09:00
悲劇,沒有 NTFS 的磁區
作者: lantw44 (#######################)   2022-09-21 18:21:00
你可以開個 NTFS 映像檔,或是試試看直接修改壓縮檔內的檔名。
作者: holishing   2022-09-21 19:12:00
可以用 qemu-img 開 qcow2 然後用 qemu-nbd 掛來測當然直接掛 raw image 也可以,只是覺得 qcow2 比較方便
作者: abcdefghi   2022-09-22 08:47:00
試過7z的rn功能可行,使用的時候要記得加上壓縮檔內的目錄名稱,不過這樣改滿累的,另一個方法是做一個1GB的檔案,再格式化成ntfs,再mount它,然後在ntfs裡解壓縮dd if=/dev/zero of=test.disk bs=1024 count=1Msudo mkfs.ntfs -F ./test.disksudo mount -o uid=自己的帳號 test.disk 7z-testcd 7z-test然後就可以直接用7z解壓縮了
作者: Bencrie   2022-09-22 08:59:00
不用 dd 吧。truncate -s 1G test.disk
作者: yvb   2022-09-22 23:08:00
即使改用NTFS,可能還是會先踩到 Linux VFS 的檔名255長度限制
作者: EdwardGJLee (LGJ)   2022-09-22 23:40:00
可以吧?linux NTFS 是由 FUSE 操控。問題是 ucs2base。不是純正的 UTF16 base。
作者: Bencrie   2022-09-23 09:28:00
fuse 是說 ntfs-3g 吧。5.15 之後有新的 ntfs3
作者: EdwardGJLee (LGJ)   2022-09-23 11:21:00
是的,是指預設、傳統的 ntfs-3g。
作者: lecheck (小調皮)   2022-09-25 06:32:00
loop monunt
作者: tony24334 (阿賴是你)   2022-09-25 19:26:00
不愧是小企鵝版 50推了只有一個求上車沒歪樓
作者: s9209122222 (海海海)   2022-09-25 21:44:00
我猜大家都私下上車了
作者: rickieyang (Rickie Yang)   2022-09-26 10:32:00
意圖使人下載... PS: Mac 可以正常解開
作者: longlongint (華哥爾)   2022-10-04 14:25:00
印象中 NTFS有特殊模式突破限制用指令解開指定檔案應該可以同時改名吧(Linux 存到短檔名繞開
作者: s9209122222 (海海海)   2022-10-05 00:30:00
都忘記了……放假找機會查查大家說的

Links booklink

Contact Us: admin [ a t ] ucptt.com