我有一个需要在 NTFS 分区上执行的脚本。脚本的权限设置为 600。
我试图通过运行来修改权限chmod 755 script.sh
,这不会报告失败或任何事情 - 但它也不会更改文件的权限:
$ stat script.sh
File: `script.sh'
Size: 297070 Blocks: 584 IO Block: 4096 regular file
Device: 811h/2065d Inode: 35515 Links: 1
Access: (0600/-rw-------) Uid: ( 1000/ xxxxxx) Gid: ( 1000/ xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700
$ chmod 755 script.sh
$ stat script.sh
File: `script.sh'
Size: 297070 Blocks: 584 IO Block: 4096 regular file
Device: 811h/2065d Inode: 35515 Links: 1
Access: (0600/-rw-------) Uid: …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的 USB 驱动器上安装一个便携式应用程序,以便它与 Ubuntu 和 Windows(特别是一个名为 eToys 的程序)兼容。应用程序中已经内置了对两种操作系统的支持 - 有etoys.sh
适用于 Ubuntu 和etoys.exe
Windows。我决定安装到 FAT 驱动器上,因为它可以从两个系统中读取。这适用于 Windows,但由于某种原因,我无法在 Ubuntu 上执行 etoys.sh。
问题不在于文件 - 当整个文件夹复制到本地硬盘时,该应用程序在 Ubuntu 中运行良好。但是当我尝试从 USB 执行它时,它会在文本编辑器中打开文件。
然后我尝试从终端运行它,但我收到消息权限被拒绝。
我对其他可执行文件也有同样的问题。
有没有一种简单的方法可以从 USB 记忆棒中执行操作?
我正在使用的一本教科书附带一张 CD,其中包含一些补充应用程序。令我惊喜的是,它似乎包含一个 Linux 安装程序。
CD 上的自述文件提供了以下安装说明:
电脑:Linux
- 双击文件夹“LINUX”
- 双击文件“INSTALL.BIN”
- 按照屏幕上的说明进行操作。
但这样做只会产生以下错误消息:
无法显示“/media/BDH DE/linux/install.bin”。文件类型未知
尝试通过命令行运行安装程序会导致权限错误:
ak@aux:~$ ls /media/BDH\ DE/
linux os x readme.txt windows xp windows xp - no java
ak@aux:~$ ls -l /media/BDH\ DE/linux/
total 41177
-rw-r--r-- 1 ak ak 42164549 2005-07-26 03:39 install.bin
ak@aux:~$ /media/BDH\ DE/linux/install.bin
bash: /media/BDH DE/linux/install.bin: Permission denied
Run Code Online (Sandbox Code Playgroud)
虽然令我失望的是,该消息未能告知我缺少哪些权限,但快速浏览 ls 的输出显示安装程序尚未标记为可执行。
我如何运行它?
文件类型为:
ak@aux:~$ file /media/BDH\ DE/linux/install.bin
src/bdh-de/install.bin: POSIX shell script text executable
Run Code Online (Sandbox Code Playgroud) 在终端输入的命令:
chmod 777 abc.sh
sudo ./abc.sh
Run Code Online (Sandbox Code Playgroud)
每个shell程序都给出相同的错误:
.sh: command not found
Run Code Online (Sandbox Code Playgroud)
包括这个简单的abc.sh
程序:
#!/bin/bash
# My first script
echo "Hello World!"
Run Code Online (Sandbox Code Playgroud)
的输出sudo od -c ./abc.sh
:
chmod 777 abc.sh
sudo ./abc.sh
Run Code Online (Sandbox Code Playgroud)
executable ×2
permissions ×2
bash ×1
cd ×1
chmod ×1
installation ×1
ntfs ×1
scripts ×1
sudo ×1
usb ×1
usb-drive ×1