Kanrisuru

ls

List contents of a directory in ruby
linux manual

Basic Usage

require 'kanrisuru'
host = Kanrisuru::Remote::Host.new(host: '127.0.1.1', username: 'ubuntu', keys: ['~/.ssh/id_rsa'])

result = host.ls(path: '/home')
result.success?
true

result[0].path
"ubuntu"

Parameters

Field Type Description
all boolean
Do not ignore entries starting with "."
path string
List information about FILES at path location
id boolean
Use UID and GID instead of user and group names

Result

Returns an array of FileInfo structs.

FileInfo Fields

Field Type Description
inode integer Unique inode value assigned to file
mode Kanrisuru::Mode An instance of the mode class for querying the mode of a file
hard_links integer The number of hard links pointing to the inode
owner string The owner of file or directory. Can either be a string or integer depending on id param passed
group string The group the file or directory belongs to. Can either be a string or integer depending on id param passed
fsize integer Size of the file in bytes
date DateTime An instance of the DateTime class. Indicates last update time
path string Location of the file

Return Example

host.ls(path: '/home')[0]
<Struct:Kanrisuru::Core::Path::FileInfo:0x000006b8
  fsize = 4096,
  date = <DateTime: 2021-07-21T19:55:00+00:00 ((2459417j,71700s,0n),+0s,2299161j)>,
  group = "ubuntu",
  inode = 322561,
  memory_blocks = 3,
  mode = <Kanrisuru::Mode:0x920 @numeric=775 @symbolic=drwxrwxr-x>,
  owner = "ubuntu",
  path = "build",
  type = "directory"
>

Exit Status

Code Description
0 Success
1 Minor problems (e.g., cannot access subdirectory)
2 Serious trouble (e.g., cannot access command-line argument)

Additional Examples

result = host.ls(path: '/etc/', id: true)
result.map(&:path)
[
  "NetworkManager", 
  "PackageKit", 
  "X11", 
  "adduser.conf",
  ...
]

Tested On

  • Ubuntu, Debian, Centos, Fedora, Redhat, OpenSuse, SLES