【问题标题】:How can I print the absolute paths of all files in the directory using a for loop?如何使用 for 循环打印目录中所有文件的绝对路径?
【发布时间】:2023-01-17 23:56:13
【问题描述】:

我想找到我当前目录中每个文件的绝对路径

现在,当我尝试使用打印出目录中的所有文件时

#!/bin/bash
for x in *; do
        echo $x
done

我得到:

cd
file1
file1.txt
file2.txt
path
readfile
testfile

这是正确的,但是,当我通过将现有代码更改为

#!/bin/bash
for x in *; do
        echo $PATH
done

我得到

    Files/Amazon Corretto/jdk11.0.16_9/bin:/mnt/c/Program Files/Amazon Corretto/jdk17.0.4_9/bin:/mnt/c/ProgramData/Oracle/Java/javapath:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files/nodejs/:/mnt/c/Users/User/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/User/AppData/Roaming/npm:/mnt/c/Users/User/AppData/Local/Programs/MiKTeX/miktex/bin/x64/:/snap/bin
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Program Files/Amazon Corretto/jdk11.0.16_9/bin:/mnt/c/Program Files/Amazon Corretto/jdk17.0.4_9/bin:/mnt/c/ProgramData/Oracle/Java/javapath:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files/nodejs/:/mnt/c/Users/User/AppData/Local/Microsoft/WindoFiles/Amazon Corretto/jdk11.0.16_9/bin:/mnt/c/Program Files/Amazon Corretto/jdk17.0.4_9/bin:/mnt/c/ProgramData/Oracle/Java/javapath:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files/nodejs/:/mnt/c/Users/User/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/User/AppData/Roaming/npm:/mnt/c/Users/User/AppData/Local/Programs/MiKTeX/miktex/bin/x64/:/snap/bin
   Files/Amazon Corretto/jdk11.0.16_9/bin:/mnt/c/Program Files/Amazon Corretto/jdk17.0.4_9/bin:/mnt/c/ProgramData/Oracle/Java/javapath:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files/nodejs/:/mnt/c/Users/User/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/User/AppData/Roaming/npm:/mnt/c/Users/User/AppData/Local/Programs/MiKTeX/miktex/bin/x64/:/snap/bin
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Program Files/Amazon Corretto/jdk11.0.16_9/bin:/mnt/c/Program Files/Amazon Corretto/jdk17.0.4_9/bin:/mnt/c/ProgramData/Oracle/Java/javapath:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files/nodejs/:/mnt/c/Users/User/AppData/Local/Microsoft/WindoFiles/Amazon Corretto/jdk11.0.16_9/bin:/mnt/c/Program Files/Amazon Corretto/jdk17.0.4_9/bin:/mnt/c/ProgramData/Oracle/Java/javapath:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files/nodejs/:/mnt/c/Users/User/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/User/AppData/Roaming/npm:/mnt/c/Users/User/AppData/Local/Programs/MiKTeX/miktex/bin/x64/:/snap/bin

重复 7 次(这是目录中存在的文件数)。但是,这看起来根本不像绝对路径,因为输出路径中甚至没有提到文件名。

我应该改变什么才能使这项工作?

【问题讨论】:

  • $PATH与此无关,并不代表$x的路径。你只是在寻找的完整路径常规文件在当前目录或全部文件(甚至目录/符号链接/套接字),你的意思是直接当前目录或递归地(例如:在子目录中包含文件)
  • @Raxi 常规文件的路径,不是全部,我的意思是在当前目录中

标签: linux shell ubuntu path


【解决方案1】:

How to get full path of a file?

#!/bin/bash
for x in *; do
        readlink -f "$x"
done

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-06
    • 2017-04-03
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    相关资源
    最近更新 更多