[编辑]:此问题已解决,请参见下文
我有一个文件夹脚本,其中有git版本控制下的bash脚本。
ls -al
产生
drwxrwxrwx 1 me me 512 Jan 21 16:06 .
drwxrwxrwx 1 me me 512 Jan 23 05:34 ..
-rwxrwxrwx 0 me me 1427 Jan 31 08:08 update_db.sh
我想取消更改,所以自然而然地,我做了git checkout -- scripts/
。但是我收到以下错误:
error: unable to unlink old 'scripts/update_db.sh': No such file or directory
所以我尝试了以下操作:
git checkout -b tmp
git reset --hard master
导致
error: unable to unlink old 'scripts/update_db.sh': No such file or directory
fatal: Could not reset index file to revision 'master'.
好,所以我搜索并找到this SO post
这导致我尝试修复权限(尽管看起来我对文件及其父目录都具有正确的权限[见上文])。
我在目录上运行sudo chmod -R ug+w scripts;
并尝试重复上述操作,结果相同...
我似乎也无法通过Windows资源管理器执行任何操作(说我没有权限)。我还应该注意,我运行了rm scripts/update_db.sh
rm: cannot remove 'scripts/update_db.sh': No such file or directory
任何帮助将不胜感激!
由于permissions是由启动该过程的用户定义的,所以我猜测open-wsl实际上不是 以root用户身份启动,因此无法删除。而且,以某种方式,我猜该文件是由具有root权限启动的Linux用户创建的,这意味着我的open-wsl用户和Windows用户将无法更改它。
无论如何,这只是我的理论,我仍然不确定在这里发生了什么,但是可以通过以root用户身份从Windows“开始”菜单启动Ubuntu shell,导航到该目录,然后{{1}来解决此问题。 }照常进行。rm