我不小心破坏了我的cd命令。
我试图ls在cd被调用后自动执行。
我发现一个帖子说我必须执行alias cd='/bin/cd && /bin/ls',但现在我得到-bash: /bin/cd: No such file or directory并且不能再改变目录了。
出于某种原因,我无法 cd 进入我有权访问的特定远程目录,它失败了:
$ cd Data\ Services/
-bash: cd: Data Services/: Invalid argument
Run Code Online (Sandbox Code Playgroud)
这是我安装它的方式:
$ sudo mount -t cifs //big.acme.corp/network/ ~/z -o username=myuser,domain=mydomain,uid=$(id -u),gid=$(id -g),vers=1.0
Password for myuser@//big.acme.corp/network/: *********
Run Code Online (Sandbox Code Playgroud)
我可以从我的 Windows 8 笔记本电脑(相同的用户名/密码)访问它。
以供参考:
$ ls -ald "Data Services"
drwx--x--x 2 myuser myuser 0 Dec 13 09:21 Data Services
Run Code Online (Sandbox Code Playgroud)
至少在我这边,这个快捷方式似乎被视为一个目录:
$ find Data\ Services -type d
Data Services
find: ‘Data Services’: Invalid argument
Run Code Online (Sandbox Code Playgroud)
因此,我不能用它做太多事情:
$ cat Data\ Services
cat: Data Services: Invalid argument
Run Code Online (Sandbox Code Playgroud)
甚至
$ hexdump Data\ Services
hexdump: Data …Run Code Online (Sandbox Code Playgroud) 在 Linux 上,我使用 将一个目录移动到另一个目录mv,而在另一个 shell 中,我的工作目录恰好是被移动的目录。
我hg pull在那个 shell 中运行,令我惊讶的是,它在新的工作目录中正确运行 - 无需我输入cd.
那是怎么工作的?
我很高兴使用该cd -命令转到上一个目录。同时我喜欢pushd .和popd。
但是,当我想通过 记住当前工作目录时pushd .,我失去了通过 转到上一个目录的可能性cd -。(pushd .也执行cd .)。
怎么用pushd才能用cd -
顺便说一句:GNU bash,版本 4.1.7(1)
我想做一些类似于这里写的 东西而不使用 zsh(我使用 bash),但是如果我尝试用
screen 'cd /home/cataldo/Programs'
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Cannot exec 'cd home/cataldo/Programs': No such file or directory
Run Code Online (Sandbox Code Playgroud)
exec 之后没有 qoutes 它也不起作用。双引号没有区别。使用 bash -c "cd .." 不起作用。
可能是某些权限问题或屏幕在启动时以特殊用户身份执行命令?
非常感谢您的帮助!
screen --version
Screen version 4.00.03jw4 (FAU) 2-May-06
cat /etc/debian_version
6.0.3
Run Code Online (Sandbox Code Playgroud) 可能的重复:
是否有一个单行允许我创建一个目录并同时进入它?
我知道这是一个非常基本的问题,但我似乎无法弄清楚要搜索什么才能得到答案。
在 linux/unix/ssh 我知道你可以创建一个这样的文件夹:
mkdir path/to/myfolder
你可以像这样移动到那个文件夹:
cd path/to/myfolder
但是是否可以在一个命令中创建它并移动到它,以防止必须两次键入路径?
结构:
/base/
+- somedir/
+- symlink/ -> /some_other_dir
Run Code Online (Sandbox Code Playgroud)
此命令(除了我的 Makefile 之外)失败:
cd /base/symlink
ls ../somedir
Run Code Online (Sandbox Code Playgroud)
Bash 抱怨 ../somedir 不存在。同样,我在 some_other_dir 中引用 ../somedir 的 makefile 失败。但是, cd .. 可以按预期工作。我可以让我的 shell 对逻辑结构进行操作吗?
考虑以下设置:
~/Desktop/Public/subdir
~/Desktop/subdir --> ~/Desktop/Public/subdir (symbolic link)
Run Code Online (Sandbox Code Playgroud)
现在我这样做:
cd ~/Desktop/subdir
Run Code Online (Sandbox Code Playgroud)
这使我进入链接目录。
如果我现在发出命令:
cd ..
Run Code Online (Sandbox Code Playgroud)
我将被移回Desktop目录。这意味着 cd 命令是上下文敏感的——它记得我是subdir通过符号链接输入的。
但是,发出命令
cp testfile ..
Run Code Online (Sandbox Code Playgroud)
将复制testfile到Desktop/Public.
我喜欢的行为cd上的(通常不可预测的)行为cp。无论如何,我想知道这种行为差异的原因是什么?只是遗留问题还是有充分的理由?
cd ~/scripts. 这将进入我家中的脚本目录。与此类似,我想要一些“别名”类型的设置,这将允许我进入其他目录,以便
cd xxx/mywork-> 进入“mywork”目录 /home/work/software。我希望命令设置xxx为/home/work/software.
不久前,我从纯 Windows 环境转向使用 Windows 和 Mac。
虽然我慢慢习惯了我的 Mac 并爱上了它,但还是有一些事情让我感到沮丧。
其中之一是文件系统上只有 1 个工作目录。
对于那些只运行 Unix 的人来说,这可能看起来很奇怪,但请按照我在 Windows 上的经验来理解。
我有 C:(程序)、D:(数据)、E:(CD/DVD)和 F:&G:(USB 密钥)。
如果我输入...
CD /D F:\Dir1\Dir2
CD /D D:\Dir3\Dir4
F:
CD
D:
CD
Run Code Online (Sandbox Code Playgroud)
假设这些都是有效路径,输出将是......
F:\Dir1\Dir2
D:\Dir3\Dir4
Run Code Online (Sandbox Code Playgroud)
这表明我可以在“驱动器”之间进行交换,并获得每个驱动器的最后一个工作目录。
当您想将内容从一个驱动器复制到另一个驱动器而无需键入整个路径时,这非常有用。
您可以转到目录,验证其内容,切换到目标驱动器/目录,然后启动复制...
COPY F:*.* D:.
Run Code Online (Sandbox Code Playgroud)
例如。
对于我的 Mac,虽然我可以使用带有 2 个 Finder 选项卡的 UI,但我仍然希望能够使用命令行。
是否有等效的方法让挂载的文件系统记住并公开该文件系统上的最后一个工作目录?
目前它是“完全输入整个命令”的方法。
cd-command ×10
directory ×4
shell ×4
bash ×2
symlink ×2
alias ×1
cifs ×1
command-line ×1
cp ×1
fedora ×1
filesystems ×1
gnu-screen ×1
linux ×1
open-files ×1
pushd ×1
rename ×1